บทนำ
บทความนี้อธิบาย Common Issues และ Solutions สำหรับ Oracle AD Online Patching (adop) Utility:
- Data Dictionary Corruption Error
- adop Prepare Failure
- Forms Object Generation Failure
- adop Cutover Hang-up
- Patch Abort
1. Data Dictionary Corruption Error
อาจเกิดเมื่อ adop Prepare Step ล้มเหลว
Error
[EVENT] Verifying data dictionary.
[UNEXPECTED]Data dictionary corrupted: [UNEXPECTED]Data dictionary corruption - missing parent 5608975 ORA$BASE IMAT V_WORKFLOWWORKITEMII VIEW 5608973 ORA$BASE IMAT V_WFSTAGETIME VIEW
[UNEXPECTED]Data dictionary corruption detected. Provide details to Oracle Support...
Cause
Developer Promote Customizations ผิดวิธี ฝ่าฝืน Online Patching Standards
Solution
- Run
$AD_TOP/sql/ADZDDBCC.sqlasapps userตรวจสอบ Corruption ใน Spool Log - Run
$AD_TOP/patch/115/sql/adzddmpfix.sqlassys userแก้ไข Corruption (ตัวอย่าง: Fixed 12 Objects)SQL> @adzddmpfix.sql "---- Fixing Data Dictionary Corruptions (missing parent) ----" 12 rows deleted. Commit complete. System altered. "---- Compiling invalids ----" PL/SQL procedure successfully completed. Commit complete. - Run
ADZDDBCC.sqlอีกครั้ง ตรวจสอบว่า Corruption หายไปหรือยัง- ไม่มี Corruption → ดำเนินต่อ
- ยังมี → ติดต่อ Oracle Support, Log Bug
- Retry adop Prepare Step
2. adop Prepare Failure
บางครั้ง Prepare Step ล้มเหลว (Oracle Bug)
Error
Lines #(47-50): runMSSrvPortsVal : oacore_server1:7252
ERROR: Run fs Context variable s_oacore_server_ports value cannot be NULL for oacore_server2
ERROR: Derived Patch managed server oacore_server2 port : NULL
ERROR: Failed to clone Run Context file to refresh Patch context file
Solution
- เปลี่ยน Target Server/SID ใน Code ตาม Error แล้วรัน:
perl $AD_TOP/patch/115/bin/adProvisionEBS.pl \ ebs-delete-managedserver \ -contextfile=/apps1/SID/fs1/inst/apps/SID_server/appl/admin/SID_server.xml -managedsrvname=oacore_server2 -servicetype=oacore -logfile=$APPLRGF/TXK/delMS_oacore_server2.log perl $FND_TOP/patch/115/bin/txkSetAppsConf.pl -contextfile=/apps1/SID/fs1/inst/apps/SID_server/appl/admin/SID_server.xml -configoption=removeMS -oacore=server.cm.charter.com:7252 - Retry adop Prepare
3. Forms Object Generation Failure
Apply Patches ด้วย adop phase=apply patches=123456 Forms Objects อาจไม่ Generate สำเร็จ ทำให้ Session หยุดโดยไม่แสดง Prompt Patch continue prompt Y/N
Error
inv forms/US INVMWBIV.fmx
Solution
Restart Failed Patch Session จาก Patch Directory:
cd /apps1/SID/fs_ne/EBSapps/patch
adop phase=apply patches=20609071 restart=yes flags=autoskip
4. adop Cutover Hang
ถ้า Cutover Hang หรือ Server Crash/Reboot ระหว่าง Cutover:
Solution
- ตรวจสอบไม่มี Services/Processes รันจาก PATCH File System
- ตรวจสอบ WebLogic Admin Server และ Node Manager รันบน Run File System:
$ adadminsrvctl.sh status $ adnodemgrctl.sh status - รันคำสั่ง:
$ adop phase=abort $ adop phase=cleanup cleanup_mode=full $ adop phase=fs_clone force=yes - รัน Empty adop Cycle ทดสอบ Cutover:
$ adop phase=prepare,finalize,cutover,cleanup cleanup_mode=full - เริ่ม Fresh adop Prepare และ Apply Patches
- หลัง Apply เสร็จ ทำ Finalize, Cutover, Cleanup ต่อ
5. Patch Abort
ถ้า Patch Cycle ล้มเหลวและแก้ไขไม่ออก ให้ Abort และกลับสู่ Normal Operation (Drop Patch Edition)
Abort Command (ก่อน Cutover เท่านั้น)
$ adop phase=abort
สำคัญ: ใช้ได้ก่อน Cutover สำเร็จเท่านั้น หลัง Cutover ระบบรันบน New Edition Abort ไม่ได้
หลัง Abort ต้อง Cleanup (Full) และ fs_clone ก่อนเริ่ม Cycle ใหม่:
$ adop phase=prepare
$ adop phase=apply patches=123456
[ปัญหาเกิดขึ้น ต้องการ Abort]
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone
# หรือรวม: $ adop phase=abort,cleanup cleanup_mode=full
หมายเหตุ: ไม่สามารถ Abort Hotpatch Mode ได้ (adop phase=apply apply_mode=hot patch)
สรุป
Known Issues และ Solutions นี้ช่วย DBA เมื่อเจอปัญหาเหล่านี้หรือปัญหาแบบคล้ายคลึง