11g OCM自动打补丁

时间:2023-06-25 22:12:32
1.先替换掉OPatch软件
每个实例都要运行
GRID_HOME和ORACLE_HOME的OPatch目录都去除掉

把OPatch软件p6880880_112000_Linux-x86-64.zip解压出来

分别cp到GRID_HOME和ORACLE_HOME,注意将OPatch目录权限修改正确 chown -R xxx

查看opatch软件的版本号
$GRID_HOME/OPatch/opatch version
$ORACLE_HOME/OPatch/opatch version

2.建立rsp文件用来自动打补丁
每个实例都要运行
su - grid
$GRID_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output ~/grid_ocm.rsp

chmod 777 grid_ocm.rsp

su – oracle
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output ~/oracle_ocm.rsp

chmod 777 oracle_ocm.rsp

以上不需要提供email并选择yes忽略,这样就分别在oracle、grid用户下建立了rsp文件。

3.把p19380115_112040_Linux-x86-64.zip补丁集包解压
里面包含了grid和rdbms的补丁集

将解压的19380115文件夹放到grid和oracle都能访问的地方,19380115目录权限改成 777

开始打补丁,都需要在root下运行
每个节点先打grid的补丁,所有节点打完之后打rdbms的补丁

root执行
/app/crs_home/OPatch/opatch auto /app/19380115 -oh /app/crs_home -ocmrf /home/grid/grid_ocm.rsp

所有实例都执行完

root执行
/app/oracle/11g/OPatch/opatch auto /app/19380115 -oh /app/oracle/11g -ocmrf /home/oracle/oracle_ocm.rsp

再所有实例执行

4.如果已经有数据库,升级数据库
su - oracle  
sqlplus / as sysdba  
sql> startup
sql> @?/rdbms/admin/catbundle.sql psu apply  

5.验证补丁集结果
su - grid
$ORACLE_HOME/OPatch/opatch lspatches
$ORACLE_HOME/OPatch/opatch lsinventory  
su - oracle
$ORACLE_HOME/OPatch/opatch lspatches
$ORACLE_HOME/OPatch/opatch lsinventory

 set linesize 300 
 col action_time for a30 
 col version for a15 
 col id for 99 
 col action for a10 
 col namespace for a10 
 col COMMENTS for a20 
 col BUNDLE_SERIES for a15 
 select * from registry$history; 

6.rollback补丁
rollback补丁gi和rdbms的
每个节点都执行
/app/crs_home/OPatch/opatch auto /app/19380115 -rollback -ocmrf /home/grid/grid_ocm.rsp

rollback数据库字典的
su - oracle  
sqlplus / as sysdba  
sql> startup
sql> @?/rdbms/admin/catbundle.sql psu noapply
然后执行生成的rollback的sql