Oracle 11.2.0.4.0打PSU补丁升级至11.2.0.4.19

一、简单介绍:

Oracle补丁一般分为2类:CPU和PSU

Ø  CPU:Critical Patch Update,紧急补丁更新。每季度发布一次,用来修复安全方面的累积型补丁,即最新的CPU补丁已经包含以往的CPU补丁,只需安装最新的CPU补丁即可。CPU已更名为SPU(Security Patch Update)。

Ø  PSU:Patch Set Update,补丁集更新。Oracle选取在每个季度用户下载数量最多、且得到验证具有较低风险的补丁放入到每个季度的PSU中。在每个PSU中不但包含Bug的修复,还包含了最新的CPU。PSU通常随CPU一起发布。PSU通常是增量的,大部分PSU可以直接安装,但有些PSU必须要求安装上一个版本的PSU之后才能继续安装。

 

二、演示环境:

1、IP:192.168.1.220

2、操作系统:CentOS 6.10 x86_64

3、Oracle软件安装包:p13390677_112040_Linux-x86-64_1of7.zip、p13390677_112040_Linux-x86-64_2of7.zip

4、Oracle版本:11.2.0.4.0

5、OPatch软件安装包:p6880880_112000_Linux-x86-64.zip(大小为108M)

6、OPatch版本:11.2.0.3.20

7、Patch补丁包:p28729262_112040_Linux-x86-64.zip

8、Patch ID:Patch 28729262(Oracle Database Patch Set Update 11.2.0.4.190115)

 

三、打PSU补丁:

1、查看当前OPatch版本:$ $ORACLE_HOME/OPatch/opatch version

image.png

备注:根据补丁包中的README.html帮助文档,Patch 28729262要求的OPatch最低版本为11.2.0.3.5

2、升级OPatch版本:

# unzip -q p6880880_112000_Linux-x86-64.zip

# chown -R oracle.oinstall OPatch

# su - oracle

$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak

$ mv OPatch $ORACLE_HOME/

$ $ORACLE_HOME/OPatch/opatch version

image.png

3、查看系统中已打过的补丁:

$ $ORACLE_HOME/OPatch/opatch lspatches

image.png

$ $ORACLE_HOME/OPatch/opatch lsinv

image.png

SQL> col ACTION format a6

SQL> col VERSION format a8

SQL> col BUNDLE_SERIES format a13

SQL> col COMMENTS format a19

SQL> select ACTION,VERSION,BUNDLE_SERIES,COMMENTS from dba_registry_history;

image.png

4、关闭数据库实例和监听,结束所有Oracle相关进程:

SQL> shutdown immediate

SQL> !lsnrctl stop

image.png

5、使用expdp数据泵备份全库数据

6、使用tar命令备份整个数据库目录

7、解压补丁包,并设置权限:

# unzip -q p28729262_112040_Linux-x86-64.zip

备注:解压后得到目录28729262和文件PatchSearch.xml

# chown -R oracle.oinstall 28729262

# su - oracle

$ cd 28729262

$ ls

image.png

备注:打补丁前务必仔细阅读README.html帮助文档

8、检查PSU补丁是否有冲突:

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

image.png

备注:必须要在28729262目录中执行上述命令

9、手动生成OPatch所需的OCM(Oracle Configuration Manager)文件ocm.rsp:

$ $ORACLE_HOME/OPatch/ocm/bin/emocmrsp

image.png

$ ll -lh | grep ocm.rsp

image.png

10、打补丁:$ $ORACLE_HOME/OPatch/opatch apply -silent -ocmrf ocm.rsp

image.png

image.png

image.png

备注:上述提示信息可忽略

image.png

备注:上述提示信息可忽略

11、升级数据字典:

$ sqlplus /nolog

SQL> connect / as sysdba

SQL> !lsnrctl start

SQL> startup

SQL> @$ORACLE_HOME/rdbms/admin/catbundle.sql psu apply

image.png

SQL> shutdown immediate

SQL> startup

12、重新编译无效对象:

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

image.png

备注:可查看日志确认执行是否成功,此处SID为TESTDB

$ less /oracle/cfgtoollogs/catbundle/catbundle_PSU_TESTDB_APPLY_2019Jan27_20_02_44.log

$ less /oracle/cfgtoollogs/catbundle/catbundle_PSU_TESTDB_GENERATE_2019Jan27_20_02_43.log

13、打OJVM(Oracle JavaVM Component Database PSU)补丁:

SQL > @$ORACLE_HOME/rdbms/admin/dbmsjdev.sql

SQL > exec dbms_java_dev.disable

image.png

14、查看系统中已打过的补丁:

$ $ORACLE_HOME/OPatch/opatch lspatches

image.png

$ $ORACLE_HOME/OPatch/opatch lsinv

image.png

image.png

image.png

SQL> col ACTION format a6

SQL> col VERSION format a8

SQL> col BUNDLE_SERIES format a13

SQL> col COMMENTS format a19

SQL> select ACTION,VERSION,BUNDLE_SERIES,COMMENTS from dba_registry_history;

image.png

 

四、删除PSU补丁:

1、执行ROLLBACK.sql:

$ sqlplus /nolog

SQL> connect / as sysdba

SQL> startup

SQL> @$ORACLE_HOME/rdbms/admin/catbundle_PSU_TESTDB_ROLLBACK.sql

image.png

SQL> quit

备注:此处SID为TESTDB

2、执行utlrp.sql,并关闭数据库实例和监听,结束所有Oracle相关进程:

$ sqlplus /nolog

SQL> connect / as sysdba

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

image.png

SQL> shutdown immediate

SQL> !lsnrctl stop

image.png

3、补丁回退:

$ $ORACLE_HOME/OPatch/opatch rollback -id 28729262

image.png

image.png

备注:上述提示信息可忽略

4、使用tar命令解压升级前备份的数据库目录

5、使用impdp数据泵导入升级前备份的全库数据

6、启动数据库实例和监听:

SQL> startup

SQL> !lsnrctl start

7、查看系统中已打过的补丁:

$ $ORACLE_HOME/OPatch/opatch lspatches

image.png

$ $ORACLE_HOME/OPatch/opatch lsinv

image.png

SQL> col ACTION format a8

SQL> col VERSION format a8

SQL> col BUNDLE_SERIES format a13

SQL> col COMMENTS format a19

SQL> select ACTION,VERSION,BUNDLE_SERIES,COMMENTS from dba_registry_history;

image.png

转自:https://blog.51cto.com/qiuyue/2347172

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值