操作系统:Oracle Linux 6.5
数据库版本:11.2.0.3.0
一、OPatch 工具确定
PSU 11.2.0.3.15 patch 必须使用 OPatch utility version 11.2.0.3.0 或更新的版本p6880880_112000_Linux-x86-64.zip
1.检查OPatch版本
[oracle@Oracle-01 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.1.7
OPatch succeeded.
2、升级OPatch 工具
[oracle@Oracle-01 ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1
[oracle@Oracle-01 dbhome_1]$ mv OPatch OPatch_bak
[oracle@Oracle-01 PSU]$ unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@Oracle-01 PSU]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.16
OPatch succeeded.
二、安装补丁
1、解压PSU 压缩文件
[oracle@Oracle-01 PSU]$ unzip p20760997_112030_Linux-x86-64.zip
[oracle@Oracle-01 PSU]$ cd 20760997
#补丁冲突检测
[oracle@Oracle-01 20760997]$$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
2、补丁应用,关闭所有数据库实例
[oracle@Oracle-01 PSU]$ cd 20760997
[oracle@Oracle-01 20760997]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> quit
[oracle@Oracle-01 20760997]$$ORACLE_HOME/OPatch/opatch apply
3、升级数据字典
[oracle@Oracle-01 20760997]$ sqlplus / as sysdba
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
4、升级数据字典中发现无效的JAVA类,执行如下脚本
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
5、检查升级报错日志
$ORACLE_HOME/cfgtoollogs/catbundle or $ORACLE_BASE/cfgtoollogs/catbundle for any errors:
catbundle_PSU_
catbundle_PSU_
三、回滚方案:
1、回滚ORACLE软件
1.1、确定 $ORACLE_HOME/rdbms/admin/catbundle_PSU_
1.2、关闭所有数据库实例
1.3、$ORACLE_HOME/OPatch/opatch rollback -id 20760997
2、回退数据库应用
2.1、启动所有数据库实例
2.2、连接每个数据库实例
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle_PSU_
SQL> QUIT
2.3、清除无效的数据对象
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
2.4、检查错误日志
$cd $ORACLE_BASE/cfgtoollogs/catbundle
$more catbundle_PSU_
#补丁检查
$sqlplus / as sysdba
set line 9999
col action_time for a30
col action for a10
col namespace for a10
col version for a10
col bundle_series for a10
col comments for a30
SELECT to_char(action_time, 'YYYY-MM-DD HH24:MI:SS') action_time,
action,
namespace,
version,
id, bundle_series,
comments
FROM dba_registry_history D;