Oracle从10.2.0.1升级到10.2.0.4

1. 肯定环境是否正确node

# echo $ORACLE_HOME
/oracle/app/oracle/product/10.2.0/db_1
# echo $ORACLE_SIDsql

orcloracle

 

若是ORACLE_SID没设置须要exportapp

#export  ORACLE_SID=orcl测试

 

2. 关闭全部oracle 的服务
$ emctl stop dbconsole
$isqlplusctl stop
ui

关闭Oracle SQL>SHUTDOWN IMMEDIATE;this

中止监听lsnrctl stop
spa

3.解压缩补丁包orm

4.升级htm

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

./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)

[n]: y

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

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

[n]: y

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

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

[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