เผยแพร่ครั้งแรกโดย Tricore:14 ส.ค. 2017
บล็อกนี้อธิบายปัญหาทั่วไปและวิธีแก้ไขสำหรับยูทิลิตี้ Oracle® AD Online Patching (adop):
- ข้อผิดพลาดของพจนานุกรมข้อมูลเสียหาย
- adop เตรียมล้มเหลว
- ฟอร์มล้มเหลวในการสร้างวัตถุ
- ใช้คัตโอเวอร์วางสาย
- ยกเลิกโปรแกรมแก้ไข
ข้อผิดพลาดพจนานุกรมข้อมูลเสียหาย
ข้อผิดพลาดความเสียหายของพจนานุกรมข้อมูลอาจเกิดขึ้นเมื่อ adop เตรียม stepfails
ข้อผิดพลาด
ข้อผิดพลาดต่อไปนี้อาจแตกต่างกันไปตามสภาพแวดล้อม
[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
5608973 ORA$BASE IMAT V_WFSTAGETIME VIEW
[UNEXPECTED]Data dictionary corruption detected. Provide details to
[UNEXPECTED]Oracle Support and ask for a bug to be opened against the
[UNEXPECTED]Online Patching component of Oracle Application Install.
/apps1/SID/fs_ne/EBSapps/log/adop/18/adop_xxxxx_xxxxx.log:
สาเหตุ
ปัญหาพจนานุกรมข้อมูลนี้เกิดขึ้นเมื่อนักพัฒนาส่งเสริมการปรับแต่งอย่างไม่เหมาะสม ซึ่งละเมิดมาตรฐานการแพตช์ออนไลน์
โซลูชัน
ในการแก้ไขความเสียหายของพจนานุกรมข้อมูล (ไม่มีพาเรนต์) ให้ทำตามขั้นตอนต่อไปนี้:
-
เรียกใช้
$AD_TOP/sql/ADZDDBCC.sql
สคริปต์เป็นapps user
เพื่อยืนยันว่ามีความเสียหายของพจนานุกรมข้อมูลเชิงตรรกะหรือไม่ ตรวจสอบความเสียหายในบันทึกสปูล -
เรียกใช้สคริปต์
$AD_TOP/patch/115/sql/adzddmpfix.sql
เป็นsys user
เพื่อแก้ไขการทุจริต ในตัวอย่างต่อไปนี้ มีการแก้ไขวัตถุเสียหาย 12 รายการ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.
-
เรียกใช้
$AD_TOP/sql/ADZDDBCC.sql
สคริปต์อีกครั้งในฐานะapps user
เพื่อตรวจสอบว่าความเสียหายของพจนานุกรมข้อมูลเชิงตรรกะยังคงมีอยู่หรือไม่ หากไม่พบความเสียหาย ให้ดำเนินการอัปเกรดหรือใช้ patching-cycle.b หากยังคงมีความเสียหายอยู่ โปรดติดต่อ Oracle Support และบันทึกจุดบกพร่อง -
หลังจากแก้ไขปัญหาแล้ว ให้ลองทำตามขั้นตอนการเตรียม adop อีกครั้ง
adop เตรียมล้มเหลว
ในบางครั้ง ขั้นตอนการเตรียม adop ล้มเหลว ส่วนนี้แสดงข้อผิดพลาดในการจัดเตรียมและวิธีแก้ไขที่เป็นไปได้หนึ่งข้อ
ข้อผิดพลาด
ข้อผิดพลาดในการจัดเตรียม adop ต่อไปนี้เป็นข้อบกพร่องของ Oracle:
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
โซลูชัน
ในการแก้ไขข้อผิดพลาดนี้ ให้ทำตามขั้นตอนต่อไปนี้:
-
เปลี่ยนเซิร์ฟเวอร์เป้าหมายตัวอย่างและ SID ในตัวอย่างโค้ดต่อไปนี้เป็นพอร์ตและพาธที่รายงานในข้อผิดพลาด และรันโค้ดเพื่อแก้ไขปัญหานี้
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
-
ลองใช้ adop อีกครั้งหลังจากใช้การแก้ไขแล้ว
ฟอร์มล้มเหลวในการสร้างวัตถุ
บางครั้ง เมื่อใช้แพตช์กับ adop phase=apply patches=123456
ออบเจ็กต์ theforms อาจไม่สร้างสำเร็จ ซึ่งทำให้เซสชัน adop หยุดทำงานโดยไม่แสดง Patch continue prompt Y/N
.
ข้อผิดพลาด
ตัวอย่างเช่น ออบเจ็กต์ Oracle Forms ต่อไปนี้สร้างไม่สำเร็จ:
inv forms/US INVMWBIV.fmx
โซลูชัน
รีสตาร์ทเซสชันแพตช์ที่ล้มเหลวจากไดเร็กทอรีแพตช์ด้วยคำสั่งต่อไปนี้:
cd /apps1/SID/fs_ne/EBSapps/patch
adop phase=apply patches=20609071 restart=yes flags=autoskip
adop cutover ค้าง
หาก adop cutover ค้างหรือเซิร์ฟเวอร์มีปัญหาการหยุดทำงานหรือรีบูตในช่วงกลางของระยะการตัดของ adop ให้ทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหา จากนั้นดำเนินการตามกระบวนการแก้ไข
โซลูชัน
-
ตรวจสอบให้แน่ใจว่าไม่มีบริการหรือกระบวนการทำงานจากระบบไฟล์ PATCH
-
ตรวจสอบให้แน่ใจว่า Weblogic Admin Server และ Node Manager กำลังทำงานอยู่บนระบบ runfile ดำเนินการคำสั่งต่อไปนี้เพื่อตรวจสอบสถานะ:
$ adadminsrvctl.sh status $ adnodemgrctl.sh status
-
ดำเนินการคำสั่งต่อไปนี้:
$ adop phase=abort $ adop phase=cleanup cleanup_mode=full $ adop phase=fs_clone force=yes
-
เรียกใช้ adop cycle ที่ว่างเปล่าเพื่อให้แน่ใจว่าไม่มีปัญหาใน adop cutover โดยดำเนินการคำสั่งต่อไปนี้:
$adop phase=prepare, finalize, cutover, cleanup cleanup_mode=full
-
เริ่ม adp ใหม่ เตรียมตัวและใช้แพทช์
-
หลังจากใช้ขั้นตอนแล้ว ให้ทำตามขั้นตอนที่เหลือให้เสร็จสิ้น ซึ่งรวมถึงขั้นสุดท้าย การตัดขอบ และการล้างข้อมูล
ยกเลิกโปรแกรมแก้ไข
หากรอบการแพตช์ล้มเหลวและคุณไม่สามารถแก้ไขปัญหาได้อย่างรวดเร็ว คุณสามารถยกเลิกรอบการแพตช์และกลับสู่การทำงานรันไทม์ปกติ ซึ่งจะทำให้รุ่นแพตช์ลดลง
คุณสามารถละทิ้งวงจรการแพตช์ (โดยไม่ต้องใช้แพตช์ใดๆ) โดยเรียกใช้คำสั่งต่อไปนี้:
$ adop phase=abort
สำคัญ: คุณสามารถใช้คำสั่งนี้ได้เฉพาะก่อนที่จะเสร็จสิ้นขั้นตอนการตัดผ่าน หลังจากการตัดทอน ระบบกำลังทำงานในฉบับใหม่และ abort
ใช้คำสั่งไม่ได้อีกต่อไปสำหรับรอบการแพตช์นั้น
การยกเลิกรอบการแพตช์จะทำให้รุ่นแพตช์หยุดทำงาน แต่คุณต้องรันเฟสการล้างข้อมูลและ fs_clone ก่อนเริ่มรอบการแพตช์ใหม่ การล้างข้อมูลจะต้องเป็นการล้างข้อมูลทั้งหมด ตัวอย่างต่อไปนี้แสดงให้เห็นถึงลำดับเหตุการณ์:
$ adop phase=prepare
$ adop phase=apply patches=123456
[Patch application encounters problems and you want to abort]
$ adop phase=abort
$ adop phase=cleanup cleanup_mode=full
$ adop phase=fs_clone
คุณสามารถเลือกรวมคำสั่งยกเลิกและล้างข้อมูลตามที่แสดงในคำสั่งต่อไปนี้:
$ adop phase=abort,cleanup cleanup_mode=full
หมายเหตุ: คุณไม่สามารถยกเลิกโปรแกรมแก้ไขที่ใช้ในโหมด hotpatch(adop phase=apply apply_mode=hot patch
)
บทสรุป
ชุดของปัญหาที่ทราบและวิธีแก้ปัญหาสำหรับยูทิลิตี้ adop นี้สามารถช่วยเหลือผู้ดูแลระบบฐานข้อมูลได้เมื่อมีปัญหาเหล่านี้หรือปัญหาที่คล้ายกัน
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม