暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

ORACLE RAC:手动应用PSU补丁

1328

   

背景

    

    前段时间踩坑哥在搞一套老系统的迁移,生产环境是11.2.0.3版本的Oracle 数据库,采用的双节点RAC架构,需要迁移至另一个数据中心,并且升级到11.2.0.4版本。经过和业务讨论,敲定的方案是前期搭建DataGuard用于数据同步,正式迁移时再把备库激活为主库,同时升级数据字典。不过在备库打最新PSU补丁时遇到了一点问题,这里记录下。

    按照以往的经验,rac环境部署psu,一般可以采用auto模式,这种模式需要用opatch工具生成个ocm应答文件。2020年一季度后,oracle对新的psu补丁做了些改动,之后的补丁必须把opatch工具包升级到11.2.0.3.23+,但是新版本的opatch工具包却不再提供ocm脚本。万般无奈,只好采用全程手动模式逐个应用补丁。



应用补丁


  • 关闭数据库

应用psu前需要关闭节点上所有数据库实例

    srvctl stop database -d testdb


    • 阅读补丁文件的readme描述,确认各个组件的版本

      ocw:29938455
      DB PSU:31103343
      acfs:29509309
      • 开始应用GI补丁

        #root用户执行,注意unlock crs资源会关闭crs进程
        /u01/app/grid/11.2.0.4/ghome/crs/install/rootcrs.pl -unlock
        /u01/app/grid/11.2.0.4/ghome/crs/install/roothas.pl -unlock


        #grid用户执行
        /u01/app/grid/11.2.0.4/ghome/OPatch/opatch napply -oh u01/app/grid/11.2.0.4/ghome -local opt/GI_PSU_11.2.0.4.200714/31305209/29938455
        /u01/app/grid/11.2.0.4/ghome/OPatch/opatch napply -oh u01/app/grid/11.2.0.4/ghome -local opt/GI_PSU_11.2.0.4.200714/31305209/29509309
        /u01/app/grid/11.2.0.4/ghome/OPatch/opatch apply -oh u01/app/grid/11.2.0.4/ghome -local opt/GI_PSU_11.2.0.4.200714/31305209/31103343
        • 应用database补丁

          --oracle执行
          /opt/GI_PSU_11.2.0.4.200714/31305209/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome u01/app/oracle/product/11.2.0.4/dbhome_1
          /u01/app/oracle/product/11.2.0.4/dbhome_1/OPatch/opatch napply -oh u01/app/oracle/product/11.2.0.4/dbhome_1 -local opt/GI_PSU_11.2.0.4.200714/31305209/29938455/custom/server/29938455
          /u01/app/oracle/product/11.2.0.4/dbhome_1/OPatch/opatch apply -oh u01/app/oracle/product/11.2.0.4/dbhome_1 -local opt/GI_PSU_11.2.0.4.200714/31305209/31103343
          /opt/GI_PSU_11.2.0.4.200714/31305209/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome u01/app/oracle/product/11.2.0.4/dbhome_1
          • 刷新参数配置

            --root执行(两个节点全部打完上述补丁后再分别执行如下脚本,刷新参数配置)
            /u01/app/grid/11.2.0.4/ghome/rdbms/install/rootadd_rdbms.sh
            /u01/app/grid/11.2.0.4/ghome/crs/install/rootcrs.pl -patch
            /u01/app/grid/11.2.0.4/ghome/crs/install/roothas.pl -patch
            • 启动实例

              #启动GI
              #启动db
              srvctl start database -d testdb




              回退补丁


                  如果应用补丁过程出现意外,或者其他原因需要回退补丁,MOS文档中同样给出了办法。

              • 关闭数据库

              应用psu前需要关闭节点上所有数据库实例

                srvctl stop database -d testdb
                • unlock crs资源

                  --root执行
                  /u01/app/grid/11.2.0.4/ghome/crs/install/rootcrs.pl -unlock
                  /u01/app/grid/11.2.0.4/ghome/crs/install/roothas.pl -unlock
                  • 回滚GI补丁

                    --grid执行
                    /u01/app/grid/11.2.0.4/ghome/OPatch/opatch rollback -local -id 29938455 -oh /u01/app/grid/11.2.0.4/ghome
                    /u01/app/grid/11.2.0.4/ghome/OPatch/opatch rollback -local -id 29509309 -oh /u01/app/grid/11.2.0.4/ghome
                    /u01/app/grid/11.2.0.4/ghome/OPatch/opatch rollback -local -id 31103343 -oh /u01/app/grid/11.2.0.4/ghome


                    • 回滚db补丁

                      --oracle执行
                      /opt/GI_PSU_11.2.0.4.200714/31305209/29938455/custom/server/29938455/custom/scripts/prepatch.sh -dbhome /u01/app/oracle/product/11.2.0.4/dbhome_1
                      /u01/app/oracle/product/11.2.0.4/dbhome_1/OPatch/opatch rollback -local -id 29938455 -oh /u01/app/oracle/product/11.2.0.4/dbhome_1
                      /u01/app/oracle/product/11.2.0.4/dbhome_1/OPatch/opatch rollback -local -id 31103343 -oh /u01/app/oracle/product/11.2.0.4/dbhome_1
                      /opt/GI_PSU_11.2.0.4.200714/31305209/29938455/custom/server/29938455/custom/scripts/postpatch.sh -dbhome /u01/app/oracle/product/11.2.0.4/dbhome_1


                      • 回滚配置信息

                        --root
                        /u01/app/grid/11.2.0.4/ghome/rdbms/install/rootadd_rdbms.sh
                        /u01/app/grid/11.2.0.4/ghome/crs/install/rootcrs.pl -patch
                        /u01/app/grid/11.2.0.4/ghome/crs/install/roothas.pl -patch
                        • 启动实例

                          #启动GI
                          #启动db
                          srvctl start database -d testdb


                              至此,手动应用/回滚psu补丁流程已经结束,对比传统auto模式可以发现,这个流程复杂太多,尤其在自动化上可能会面临一些麻烦。希望后续opatch工具包能够更新一下,当然这个希望比较渺茫,毕竟11.2.0.4版本已经存在太长时间了。




                          MOS文章参考:

                          1. How to Create an OCM Response file to Apply a Patch in Silent Mode - opatch silent (Doc ID 966023.1)

                          2. Oracle Grid Infrastructure 11.2.0.4.x Patch Set Update SUPPLEMENTAL README (Doc ID 1641136.1)(参考5 Manual Steps for Apply/Rollback Patch)





                          End.

                          文章转载自数据库踩坑现场,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论