按照正常的打补丁流程:
1. 分别在node1、node2上,升级GI OPatch
2. 分别在node1、node2上,升级Oracle OPatch
3. 分别在node1、node2上,给GI 打补丁
4. 分别在node1、node2上,给Oracle打补丁
结果就在成功在node1上给Oracle打补丁之后,去node2打的时候报错了。离成功就差一丢丢的时候。
root@coredb2-adg soft]# /u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto apply /u01/soft/31305339 -oh /u01/app/oracle/product/19.0.0/db_1
OPatchauto session is initiated at Fri Sep 11 17:29:55 2020
System initialization log file is /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatchautodb/systemconfig2020-09-11_05-29-59PM.log.
Session log file is /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatchauto/opatchauto2020-09-11_05-30-12PM.log
The id for this session is Q3Y5
Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19.0.0/db_1
Patch applicability verified successfully on home /u01/app/oracle/product/19.0.0/db_1
Verifying SQL patch applicability on home /u01/app/oracle/product/19.0.0/db_1
No step execution required.........
Preparing to bring down database service on home /u01/app/oracle/product/19.0.0/db_1
No step execution required.........
Performing prepatch operation on home /u01/app/oracle/product/19.0.0/db_1
Perpatch operation completed successfully on home /u01/app/oracle/product/19.0.0/db_1
Start applying binary patch on home /u01/app/oracle/product/19.0.0/db_1
Failed while applying binary patches on home /u01/app/oracle/product/19.0.0/db_1
Execution of [OPatchAutoBinaryAction] patch action failed, check log for more details. Failures:
Patch Target : coredb2-adg->/u01/app/oracle/product/19.0.0/db_1 Type[rac]
Details: [
---------------------------Patching Failed---------------------------------
Command execution failed during patching in home: /u01/app/oracle/product/19.0.0/db_1, host: coredb2-adg.
Command failed: /u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto apply /u01/soft/31305339 -oh /u01/app/oracle/product/19.0.0/db_1 -target_type rac_database -binary -invPtrLoc /u01/app/oracle/product/19.0.0/db_1/oraInst.loc -jre /u01/app/oracle/product/19.0.0/db_1/OPatch/jre -persistresult /u01/app/oracle/product/19.0.0/db_1/opatchautocfg/db/sessioninfo/sessionresult_coredb2-adg_rac_2.ser -analyzedresult /u01/app/oracle/product/19.0.0/db_1/opatchautocfg/db/sessioninfo/sessionresult_analyze_coredb2-adg_rac_2.ser
Command failure output:
==Following patches FAILED in apply:
Patch: /u01/soft/31305339/31281355
Log: /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2020-09-11_17-30-35PM_1.log
Reason: Failed during Patching: oracle.opatch.opatchsdk.OPatchException: ApplySession failed in system modification phase... 'ApplySession::apply failed: java.io.IOException: oracle.sysman.oui.patch.PatchException: java.io.FileNotFoundException: /u01/app/oraInventory/ContentsXML/oui-patch.xml (Permission denied)'
After fixing the cause of failure Run opatchauto resume
]
OPATCHAUTO-68061: The orchestration engine failed.
OPATCHAUTO-68061: The orchestration engine failed with return code 1
OPATCHAUTO-68061: Check the log for more details.
OPatchAuto failed.
OPatchauto session completed at Fri Sep 11 17:31:52 2020
Time taken to complete the session 1 minute, 57 seconds
opatchauto failed with error code 42
看到了很明显的(Permission denied)
字样。
给oui-patch.xml
文件777 的权限。
[root@base3db2-adg db_1]# cd /u01/app/oraInventory/ContentsXML/
[root@base3db2-adg ContentsXML]# ll
total 20
-rw-rw---- 1 grid oinstall 300 Sep 11 15:52 comps.xml
-rw-rw---- 1 grid oinstall 557 Sep 11 15:52 inventory.xml
-rw-rw---- 1 grid oinstall 292 Sep 11 15:52 libs.xml
-rw-r--r-- 1 grid oinstall 174 Sep 11 14:47 oui-patch.xml
-rw-rw---- 1 oracle oinstall 174 Sep 11 14:47 oui-patch.xml.back
[root@base3db2-adg ContentsXML]# chmod 777 oui-patch.xml
然后可用以下命令,继续打补丁:
[root@base3db2-adg ContentsXML]# /u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto resume
没过一会儿又报错了,错误号还是 68061,但是前面输出的信息变了:
root@base3db2-adg ContentsXML]# /u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto resume
OPatchauto session is initiated at Fri Sep 11 16:18:05 2020
Session log file is /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatchauto/opatchauto2020-09-11_04-18-07PM.log
Resuming existing session with id LIPB
Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19.0.0/db_1
Patch applicability verification failed on home /u01/app/oracle/product/19.0.0/db_1
Execution of [OPatchAutoBinaryAction] patch action failed, check log for more details. Failures:
Patch Target : base3db2-adg->/u01/app/oracle/product/19.0.0/db_1 Type[rac]
Details: [
---------------------------Patching Failed---------------------------------
Command execution failed during patching in home: /u01/app/oracle/product/19.0.0/db_1, host: base3db2-adg.
Command failed: /u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto apply /u01/soft/31305339 -oh /u01/app/oracle/product/19.0.0/db_1 -target_type rac_database -binary -invPtrLoc /u01/app/oracle/product/19.0.0/db_1/oraInst.loc -jre /u01/app/oracle/product/19.0.0/db_1/OPatch/jre -persistresult /u01/app/oracle/product/19.0.0/db_1/opatchautocfg/db/sessioninfo/sessionresult_analyze_base3db2-adg_rac_2.ser -analyze -online -prepare_home
Command failure output:
==Following patches FAILED in analysis for apply:
Patch: /u01/soft/31305339/31305087
Log:
Reason: Failed during listing in Analysis: java.lang.Exception: oracle.opatch.opatchsdk.OPatchException: Unable to create patchObject
Possible causes are:
ORACLE_HOME/inventory/oneoffs/31281355 is corrupted. PatchObject constructor: Input file "/u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs/31281355/etc/config/actions" or "/u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs/31281355/etc/config/inventory" does not exist.
Patch: /u01/soft/31305339/31281355
Log:
Reason: Failed during listing in Analysis: java.lang.Exception: oracle.opatch.opatchsdk.OPatchException: Unable to create patchObject
Possible causes are:
ORACLE_HOME/inventory/oneoffs/31281355 is corrupted. PatchObject constructor: Input file "/u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs/31281355/etc/config/actions" or "/u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs/31281355/etc/config/inventory" does not exist.
After fixing the cause of failure Run opatchauto resume
]
OPATCHAUTO-68061: The orchestration engine failed.
OPATCHAUTO-68061: The orchestration engine failed with return code 1
OPATCHAUTO-68061: Check the log for more details.
OPatchAuto failed.
OPatchauto session completed at Fri Sep 11 16:18:18 2020
Time taken to complete the session 0 minute, 13 seconds
opatchauto failed with error code 42
报错说ORACLE_HOME/inventory/oneoffs/31281355 is corrupted
corrupted! corrupted !! 居然损坏了!? 奇怪
既然node1 打好了补丁,node2 一直在说 ‘31281355’ 损坏。
那么。。emmm。。简单粗暴的去node1 ”借用一下” 31281355
[oracle@base3db1:/home/oracle]$ cd /u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs/
[oracle@base3db1:/u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs]$ ls
29517242 29585399 31281355 31305087
[oracle@base3db1-adg:/u01/app/oracle/product/19.0.0/db_1/inventory/oneoffs]$ scp -r 31281355 db2-adg:`pwd`
inventory.xml 100% 276KB 95.3MB/s 00:00
actions.xml 100% 1614KB 136.0MB/s 00:00
[root@base3db2-adg oneoffs]# /u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto resume
OPatchauto session is initiated at Fri Sep 11 16:20:59 2020
Session log file is /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatchauto/opatchauto2020-09-11_04-21-01PM.log
Resuming existing session with id LIPB
Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/19.0.0/db_1
Patch applicability verified successfully on home /u01/app/oracle/product/19.0.0/db_1
Verifying SQL patch applicability on home /u01/app/oracle/product/19.0.0/db_1
No step execution required.........
Preparing to bring down database service on home /u01/app/oracle/product/19.0.0/db_1
No step execution required.........
Performing prepatch operation on home /u01/app/oracle/product/19.0.0/db_1
Perpatch operation completed successfully on home /u01/app/oracle/product/19.0.0/db_1
Start applying binary patch on home /u01/app/oracle/product/19.0.0/db_1
Binary patch applied successfully on home /u01/app/oracle/product/19.0.0/db_1
Performing postpatch operation on home /u01/app/oracle/product/19.0.0/db_1
Postpatch operation completed successfully on home /u01/app/oracle/product/19.0.0/db_1
Preparing home /u01/app/oracle/product/19.0.0/db_1 after database service restarted
No step execution required.........
Trying to apply SQL patch on home /u01/app/oracle/product/19.0.0/db_1
No step execution required.........
OPatchAuto successful.
--------------------------------Summary--------------------------------
Patching is completed successfully. Please find the summary as follows:
Host:base3db2-adg
RAC Home:/u01/app/oracle/product/19.0.0/db_1
Version:19.0.0.0.0
Summary:
==Following patches were SKIPPED:
Patch: /u01/soft/31305339/31281355
Reason: This patch is already been applied, so not going to apply again.
==Following patches were SUCCESSFULLY applied:
Patch: /u01/soft/31305339/31305087
Log: /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2020-09-11_16-21-22PM_1.log
OPatchauto session completed at Fri Sep 11 16:21:52 2020
Time taken to complete the session 0 minute, 53 seconds
最终再一次开心的开到了 completed 。
所以给19c打补丁的时候,为了避免报错,那就提前给node2的oracle打补丁之前,该改权限的改权限,改传文件的传文件,提前做。然后打补丁! 一条命令顺顺利利的