Oracle的补丁一般都会有README.html,里面有详细的更新该补丁的介绍。



以下为我打补丁的记录:

1、You must use the OPatch utility release 10.2.0.2 It is available in $ORACLE_HOME.

  文档中提到OPatch 工具版本必须为10.2.0.2,故首先对OPatch版本进行检查。

[oracle@carefree ~]$ $ORACLE_HOME/OPatch/opatch lsinventory
Invoking OPatch 10.2.0.2.0


2、版本符合,开始解压补丁,应用补丁

[oracle@carefree ~]$ unzip p5490848_10202_LINUX.zip
Archive:  p5490848_10202_LINUX.zip
   creating: 5490848/
....
....
[oracle@carefree ~]$ cd 5490848
[oracle@carefree 5490848]$ $ORACLE_HOME/OPatch/opatch apply
Invoking OPatch 10.2.0.2.0
...
...

3、启动实例,运行相关脚本

cd $ORACLE_HOME/cpu/CPUOct2006
sqlplus /nolog
SQL> CONNECT /AS SYSDBA
SQL> STARTUP
SQL> @catcpu.sql
SQL> @?/rdbms/adminutlrp.sql
SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';

4、查询补丁信息


   select * from dba_registry_history;

注意:打补丁之前,管理数据库实例,以及相关的信息

emctl stop dbconsole

isqlplusctl stop

lsnrctl stop

shutdwon immediate


5、回滚

cd 5490848
$ORACLE_HOME/OPatch/opatch rollback -id 5490848
cd $ORACLE_HOME/cpu/CPUOct2007
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catcpu_rollback.sql
SQL> @?/rdbms/adminutlrp.sql 
SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS = 'INVALID';