1、查看当前的OPatch工具版本:$ORACLE_HOME/OPatch/opatchversion
[oracle@oracle~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version:11.2.0.3.4
OPatch succeeded.
注:根据psu补丁包中的README.html帮助文档中描述,psu28729262安装要求OPatch工具最低版本为11.2.0.3.5 所在这里在升级psu补丁前,先要升级OPatch工具
2、升级OPatch工具
2.1将OPatch工具传输到数据库的ORACLE_HOME下;
2.2将oracle数据库原来的OPatch迁移或重命令,备个份;
2.3解压p6880880_112000_Linux-x86-64.zip,替换原来的OPatch;
Unzip p6880880_112000_Linux-x86-64.zip
2.4 root用户将解压出来的OPatch目录,赋于oracle用户和用户组
Chown -R oracle:oinstall OPatch/
2.5移除p6880880_112000_Linux-x86-64.zip;
2.6 验证OPatch的版本,是否已升级完成。
$ORACLE_HOME/OPatch/opatch version
[oracle@oracle~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version:11.2.0.3.21
OPatch succeeded.
3、查看系统中补丁版本
cd $ORACLE_HOME/OPatch
[oracle@oracleOPatch]$ ./opatch lsinv
Oracle 临时补丁程序安装程序版本 11.2.0.3.21
版权所有 (c) 2019, Oracle Corporation。保留所有权利。
Oracle 主目录 :/u01/app/oracle/product/11.2.4/dbhome_1
主产品清单:/u01/oraInventory
来自 :/u01/app/oracle/product/11.2.4/dbhome_1/oraInst.loc
OPatch 版本 :11.2.0.3.21
OUI 版本 :11.2.0.4.0
日志文件位置:/u01/app/oracle/product/11.2.4/dbhome_1/cfgtoollogs/opatch/opatch2019-11-05_10-37-31上午_1.log
LsinventoryOutput file location :/u01/app/oracle/product/11.2.4/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2019-11-05_10-37-31上午.txt
--------------------------------------------------------------------------------
Local MachineInformation::
Hostname:oracle.example.com
ARU platformid: 226
ARU platformdescription:: Linux x86-64
已安装的顶级产品 (1):
Oracle Database11g 11.2.0.4.0
此 Oracle 主目录中已安装 0 个产品。
OPatch succeeded.
4、关闭数据库实例与监听,结束所有oracle相关的进程
Sqlplus / as sysdba
SQL> shutdown immediate
SQL> !lsnrctl stop
5、将psu补丁包传到oracle数据库服务器的ORACLE_HOME目录中
5.1解压psu补丁包p28729262_112040_Linux-x86-64.zip
Unzip p28729262_112040_Linux-x86-64.zip
注:解压后得到目录28729262和文件PatchSearch.xml
5.2使用root用户将解压的28729262赋于oracle用户与它所在的组
chown-R oracle.oinstall 28729262
5.3切换到oracle用户,并切换到28729262目录中
注:升级补丁前,仔细阅读README.html帮助文档
6、检查psu补丁是否有冲突
$ORACLE_HOME/OPatch/opatchprereq CheckConflictAgainstOHWithDetail -ph ./
注:该命令要在解压后的psu目录中执行
7、需要手动生成OPatch需要的OCM文件ocm.rsp
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp
注:执行过程中,会要求输入Email address/UserName,直接回车键即可,之后输入Y
8、升级PSU补丁
$ORACLE_HOME/OPatch/opatchapply -silent -ocmrf ocm.rsp
9、升级数据字典
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> !lsnrctl start
SQL> startup
SQL>@$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply
SQL> shutdown immediate
SQL> startup
10、重新编译无效对象
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
11、升级OJVMPSU补丁
SQL >@$ORACLE_HOME/rdbms/admin/dbmsjdev.sql
SQL > exec dbms_java_dev.disable
12、查看补丁是否升级完成
$ORACLE_HOME/OPatch/opatch lspatches
$ORACLE_HOME/OPatch/opatch lsinv
SQL> select ACTION,VERSION,BUNDLE_SERIES,COMMENTSfrom dba_registry_history;