您的位置:首页 > 数据库 > Oracle

Oracle从10.2.0.1升级到10.2.0.4

2012-04-29 18:53 405 查看
1. 确定环境是否正确

# echo $ORACLE_HOME

/oracle/app/oracle/product/10.2.0/db_1

# echo $ORACLE_SID

orcl

如果ORACLE_SID没设置需要export

#export ORACLE_SID=orcl

2. 关闭所有oracle 的服务

$ emctl stop dbconsole

$isqlplusctl stop

关闭Oracle SQL>SHUTDOWN IMMEDIATE;

停止监听lsnrctl stop

3.解压缩补丁包

4.升级

注意事项:补丁的存放的路径尽量不要夹杂特殊字符,第二次测试升级补丁时发现如下错误:

./runInstaller

./runInstaller: line 72: /home/oracle/Desktop/Disk1/install/.oui: No such file or directory

查了好久才知道路径中有特殊字符,造成这个错误。重新将升级包拷贝到简单的目录中即可正常运行。

[root@LING Desktop]# xhost +

access control disabled, clients can connect from any host

[root@LING Desktop]# su - oracle

[oracle@LING Disk1]$ ls

10204_buglist.htm install patch_note.htm response runInstaller stage

[oracle@LING Disk1]$ ./runInstaller

Starting Oracle Universal Installer...

Checking installer requirements...

Checking operating system version: must be redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, UnitedLinux-1.0, asianux-1, asianux-2 or asianux-3

Passed

All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-04-29_02-58-42AM. Please wait ...[oracle@LING Disk1]$ Oracle Universal Installer, Version 10.2.0.4.0 Production

Copyright (C) 1999, 2008, Oracle. All rights reserved.

Warning: Cannot convert string "-b&h-lucida-medium-r-normal-sans-*-140-*-*-p-*-iso8859-1" to type FontStruct















这里需要用root用户执行提示的脚本:

#su - root

Password:

[root@LING Desktop]# . /u01/app/oracle/product/10.2.0/client_1/root.sh

Running Oracle10 root.sh script...

The following environment variables are set as:

ORACLE_OWNER= oracle

ORACLE_HOME= /u01/app/oracle/product/10.2.0/client_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)

: y

Copying dbhome to /usr/local/bin ...

The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)

: y

Copying oraenv to /usr/local/bin ...

The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)

: y

Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.



后面开始升级数据字典

[oracle@LING ~]$ export ORACLE_SID=orcl

[oracle@LING ~]$ echo $ORACLE_SID

orcl

[oracle@LING ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on Sun Apr 29 03:15:33 2012

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

SQL> conn /as sysdba

Connected to an idle instance.

SQL> startup upgrade

ORACLE instance started.

Total System Global Area 603979776 bytes

Fixed Size 1268872 bytes

Variable Size 150995832 bytes

Database Buffers 444596224 bytes

Redo Buffers 7118848 bytes

Database mounted.

Database opened.

SQL> SPOOL patch.log

SQL> @?/rdbms/admin/catupgrd.sql





经过漫长的等待,终于结束:



SQL> SPOOL off

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 603979776 bytes

Fixed Size 1268872 bytes

Variable Size 184550264 bytes

Database Buffers 411041792 bytes

Redo Buffers 7118848 bytes

Database mounted.

Database opened.

SQL> @?/rdbms/admin/utlrp.sql

TIMESTAMP

--------------------------------------------------------------------------------

COMP_TIMESTAMP UTLRP_BGN 2012-04-29 03:45:09

DOC> The following PL/SQL block invokes UTL_RECOMP to recompile invalid

DOC> objects in the database. Recompilation time is proportional to the

DOC> number of invalid objects in the database, so this command may take

DOC> a long time to execute on a database with a large number of invalid

DOC> objects.

DOC>

DOC> Use the following queries to track recompilation progress:

DOC>

DOC> 1. Query returning the number of invalid objects remaining. This

DOC> number should decrease with time.

DOC> SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);

DOC>

DOC> 2. Query returning the number of objects compiled so far. This number

DOC> should increase with time.

DOC> SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;

DOC>

DOC> This script automatically chooses serial or parallel recompilation

DOC> based on the number of CPUs available (parameter cpu_count) multiplied

DOC> by the number of threads per CPU (parameter parallel_threads_per_cpu).

DOC> On RAC, this number is added across all RAC nodes.

DOC>

DOC> UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel

DOC> recompilation. Jobs are created without instance affinity so that they

DOC> can migrate across RAC nodes. Use the following queries to verify

DOC> whether UTL_RECOMP jobs are being created and run correctly:

DOC>

DOC> 1. Query showing jobs created by UTL_RECOMP

DOC> SELECT job_name FROM dba_scheduler_jobs

DOC> WHERE job_name like 'UTL_RECOMP_SLAVE_%';

DOC>

DOC> 2. Query showing UTL_RECOMP jobs that are running

DOC> SELECT job_name FROM dba_scheduler_running_jobs

DOC> WHERE job_name like 'UTL_RECOMP_SLAVE_%';

DOC>#

TIMESTAMP

--------------------------------------------------------------------------------

COMP_TIMESTAMP UTLRP_END 2012-04-29 03:45:37

DOC> The following query reports the number of objects that have compiled

DOC> with errors (objects that compile with errors have status set to 3 in

DOC> obj$). If the number is higher than expected, please examine the error

DOC> messages reported with each object (using SHOW ERRORS) to see if they

DOC> point to system misconfiguration or resource constraints that must be

DOC> fixed before attempting to recompile these objects.

DOC>#

OBJECTS WITH ERRORS

-------------------

0

DOC> The following query reports the number of errors caught during

DOC> recompilation. If this number is non-zero, please query the error

DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors

DOC> are due to misconfiguration or resource constraints that must be

DOC> fixed before objects can compile successfully.

DOC>#

ERRORS DURING RECOMPILATION

---------------------------

0

至此升级完成,验证一下:

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod

PL/SQL Release 10.2.0.4.0 - Production

CORE 10.2.0.4.0 Production

TNS for Linux: Version 10.2.0.4.0 - Production

NLSRTL Version 10.2.0.4.0 - Production

SQL> select comp_id,version,status from dba_registry;

COMP_ID VERSION STATUS

------------------------------ ------------------------------ -----------

CATALOG 10.2.0.4.0 VALID

CATPROC 10.2.0.4.0 VALID

OWM 10.2.0.4.3 VALID

JAVAVM 10.2.0.4.0 VALID

XML 10.2.0.4.0 VALID

CATJAVA 10.2.0.4.0 VALID

EXF 10.2.0.4.0 VALID

ODM 10.2.0.4.0 VALID

CONTEXT 10.2.0.4.0 VALID

XDB 10.2.0.4.0 VALID

RUL 10.2.0.4.0 VALID

ORDIM 10.2.0.4.0 VALID

APS 10.2.0.4.0 VALID

XOQ 10.2.0.4.0 VALID

AMD 10.2.0.4.0 VALID

SDO 10.2.0.4.0 VALID

EM 10.2.0.4.0 VALID

SQL> select * from dba_registry_history;

ACTION_TIME

---------------------------------------------------------------------------

ACTION NAMESPACE

------------------------------ ------------------------------

VERSION ID

------------------------------ ----------

COMMENTS

--------------------------------------------------------------------------------

29-APR-12 03.32.01.307734 AM

UPGRADE SERVER

10.2.0.4.0

Upgraded from 10.2.0.1.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: