โพสต์นี้ครอบคลุมถึงการบำรุงรักษาและการแก้ไขระบบการกู้คืนความเสียหาย (DR) สำหรับ Oracle® E-business Suite® (EBS) R12.2.9 อธิบายกระบวนการทั่วไปในการใช้โปรแกรมแก้ไขฐานข้อมูลและแอปพลิเคชัน (APPS) กับระบบ Oracle เวอร์ชัน 12.2 Applications DR
แนะนำตัว
ขั้นตอนในการสร้างไซต์แอปพลิเคชัน DR เกือบจะเหมือนกับการสร้างระบบโคลน ซึ่งเราได้กล่าวถึงในบล็อกโพสต์ก่อนหน้านี้
ในช่วงเวลาที่เกิดภัยพิบัติ คุณต้องทำการเปลี่ยนแปลงเพียงเล็กน้อยในไฟล์ XML สำหรับชื่อโฮสต์ และระบบสำรองข้อมูลของคุณก็พร้อมใช้งาน เพื่อให้ระบบไม่ซิงค์ คุณต้องใช้โปรแกรมแก้ไขกับฐานข้อมูลและสภาพแวดล้อมของเซิร์ฟเวอร์แอปพลิเคชันเป็นประจำ
ตรวจสอบให้แน่ใจว่าคุณกำหนดค่าฐานข้อมูลสแตนด์บายจริงด้วยเซิร์ฟเวอร์ฐานข้อมูลหลัก และฐานข้อมูลทั้งสองซิงค์กัน จากนั้น คุณต้องใช้แพตช์ทั้งหมดกับระบบแอปพลิเคชัน DR
ขั้นตอนระดับสูงสำหรับกระบวนการนี้ ได้แก่:
- ปิดใช้งานการเก็บถาวรและแปลง DR เป็นสแตนด์บายสแน็ปช็อตจากโหมดสแตนด์บายจริง
- ปิดฐานข้อมูล DR เพื่อใช้โปรแกรมแก้ไขฐานข้อมูล
- เริ่มฐานข้อมูล DR ในโหมดสแน็ปช็อตสแตนด์บายและเรียกใช้สคริปต์การล้างโหนด
- พลิกระบบไฟล์สำหรับแอปพลิเคชัน DR หากไม่ตรงกับระบบ PROD
- เมื่อระบบอยู่ในโหมดหยุดทำงาน ให้ใช้โปรแกรมแก้ไข
- แปลง DR กลับเป็นโหมดสแตนด์บายจริงหลังจากที่คุณแก้ไขเซิร์ฟเวอร์ DR ของแอปพลิเคชันเสร็จสิ้น
กระบวนการนี้เกี่ยวข้องกับการออกแบบระบบที่เรียบง่ายและวางระบบสำหรับการสลับแอปพลิเคชัน หากคุณประสบปัญหาด้านแอปพลิเคชัน ระบบนี้จะต้องซิงค์กับไซต์หลักในทุกระดับของแพตช์
1. แปลง DR เป็น Snapshot Standby จากโหมดสแตนด์บายจริง
ขั้นแรก ปิดใช้งานการจัดส่งบันทึกที่เก็บถาวรและแปลงฐานข้อมูล DR หลักเป็นโหมดสแนปชอตสแตนด์บาย:
-
เข้าสู่ระบบฐานข้อมูลการผลิตหลัก node1 ในชื่อ
oracle
. -
เรียกใช้คำสั่งต่อไปนี้:
$. prodinstance.env $ sqlplus / as sysdba show parameter log_archive_dest_state_2; NAME TYPE VALUE ------------------------------------ ----------- -------------------- log_archive_dest_state_2 string enable alter system set log_archive_dest_state_2='Defer' scope=both sid='*'; show parameter log_archive_dest_state_2; NAME TYPE VALUE ------------------------------------ ----------- -------------------- log_archive_dest_state_2 string Defer
จากนั้น ยกเลิกแอปพลิเคชันบันทึกซ้ำบนฐานข้อมูล DR และแปลงเป็นโหมดสแตนด์บายสแนปช็อต:
-
เข้าสู่ระบบฐานข้อมูล DR node1 ในชื่อ
oracle
. -
เรียกใช้คำสั่งต่อไปนี้:
$. drinstance.env $ sqlplus / as sysdba alter database recover managed standby database cancel; select FLASHBACK_ON, DATABASE_ROLE from v$database; FLASHBACK_ON DATABASE_ROLE ------------ ---------------- YES PHYSICAL STANDBY
2. ปิดฐานข้อมูล DR เพื่อใช้โปรแกรมแก้ไขฐานข้อมูล
ปิดฐานข้อมูลบนโหนดทั้งสองและใช้แพตช์ฐานข้อมูล เรียกใช้คำสั่งต่อไปนี้เพื่อใช้โปรแกรมแก้ไขฐานข้อมูล:
$. prodinstance.env
$ sqlplus / as sysdba
shut immediate;
$ cd $PATCH_DIR
$ opatch apply
ใช้ขั้นตอนก่อนหน้าเพื่อใช้โปรแกรมแก้ไขฐานข้อมูลกับโหนดระบบ Real ApplicationCluster (RAC) ทั้งหมด
3. แปลงฐานข้อมูลเป็นโหมดสแนปชอต
แปลงฐานข้อมูล DR เป็นโหมดสแตนด์บายสแน็ปช็อตและเรียกใช้การกำหนดค่าอัตโนมัติหลังจากล้างข้อมูลโหนด:
$. prodinstance.env
$ sqlplus / as sysdba
SYS@PRODINSTANCE> startup mount;
SYS@PRODINSTANCE>alter database convert to snapshot standby;
SYS@PRODINSTANCE>alter database open;
SYS@PRODINSTANCE>select DB_UNIQUE_NAME, OPEN_MODE, DATABASE_ROLE from v$database;
DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE
-------------- ---------- ----------------
PRODINSTANCE READ WRITE SNAPSHOT STANDBY
ตอนนี้ ให้เตรียมระบบ DR ของแอปพลิเคชันสำหรับการแพตช์ หลังจากวงจรการแพตช์เสร็จสิ้นบนระบบที่ใช้งานจริง ระบบไฟล์จะพลิกกลับหลังการตัด ตามผลลัพธ์ ระบบไฟล์ที่ใช้งานจริงและ DR อาจไม่เหมือนเดิม ขั้นตอนต่อไปนี้แก้ไขข้อกังวลนี้ ขั้นตอนเหล่านี้ซึ่งคุณเรียกใช้บนโหนด DB และ APPS จะลบการอ้างอิงการใช้งานจริงในฐานข้อมูล DR
ล้างโหนด
เรียกใช้ขั้นตอนต่อไปนี้เพื่อเตรียมล้างโหนด:
-
เข้าสู่ระบบฐานข้อมูล DR node1 ในชื่อ
oracle
. -
เรียกใช้คำสั่งต่อไปนี้:
$. drinstance.env $ sqlplus apps/apps-passwd exec fnd_conc_clone.setup_clean; truncate table applsys.adop_valid_nodes;
ดำเนินการ Autoconfig บนทุกระดับแอปพลิเคชันและฐานข้อมูล
เรียกใช้ adautoconfig
บนฐานข้อมูลและโหนดแอปพลิเคชัน
โหนดฐานข้อมูล:
-
เข้าสู่ระบบฐานข้อมูล DR node1 ในชื่อ
oracle
และรันคำสั่งต่อไปนี้:$. drinstance.env $ cd $ORACLE_HOME/appsutil/scripts/<CONTEXT_NAME>/ $ sh adautocfg.sh
-
ล็อกออนเข้าสู่ DR DB node2 เป็น
oracle
และรันคำสั่งต่อไปนี้:$. drinstance.env $ cd $ORACLE_HOME/appsutil/scripts/<CONTEXT_NAME>/ $ sh adautocfg.sh
โหนดแอปพลิเคชัน—เรียกใช้ FS:
-
เข้าสู่ระบบแอปพลิเคชัน DR node1 เป็น
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
-
เข้าสู่ระบบแอปพลิเคชัน DR node2 ด้วย
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
-
เข้าสู่ระบบ DR แอปพลิเคชันภายนอก node1 เป็น
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
-
เข้าสู่ระบบ DR แอปพลิเคชันภายนอก node2 เป็น
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
โหนดแอปพลิเคชัน—แพตช์ FS
-
เข้าสู่ระบบแอปพลิเคชัน DR node1 เป็น
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance_patch.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
-
เข้าสู่ระบบแอปพลิเคชัน DR node2 ด้วย
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance_patch.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
-
เข้าสู่ระบบ DR แอปพลิเคชันภายนอก node1 เป็น
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance_patch.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
-
เข้าสู่ระบบ DR แอปพลิเคชันภายนอก node2 เป็น
applmgr
และรันคำสั่งต่อไปนี้:$. drinstance_patch.env $ cd $ADMIN_SCRIPTS_HOME $ sh adautocfg.sh
4. พลิกระบบไฟล์สำหรับแอป DR หากไม่ตรงกับระบบ PROD
คุณต้องดำเนินการตามขั้นตอนต่อไปนี้ก็ต่อเมื่อมีความแตกต่างระหว่างระบบไฟล์ RUN และ PATCH สำหรับเซิร์ฟเวอร์ PROD และ DR หากเหมือนกัน คุณสามารถใช้แพตช์ได้โดยตรง
ดำเนินการขั้นตอนต่อไปนี้บนโหนดระดับ DR APPS ทั้งหมด:
-
เข้าสู่ระบบทุกโหนดแอปพลิเคชัน DR (ภายนอกและภายใน) และดำเนินการคำสั่งต่อไปนี้:
$. ./drinstance.env $ perl $AD_TOP/patch/115/bin/txkADOPCutOverPhaseCtrlScript.pl -action=ctxupdate -contextfile=<full path of current run Context File on standby> -patchcontextfile=<full path of current patch file system Context File on standby> -outdir=<full path to out directory>
-
จัดหาสภาพแวดล้อมอีกครั้งบนโหนดทั้งหมดเพื่อตรวจสอบว่าระบบไฟล์สลับหรือไม่
ตอนนี้ DR พร้อมสำหรับการแพตช์แอปพลิเคชันแล้ว
5. ใช้โปรแกรมแก้ไขแอปพลิเคชันกับโหนดแอปพลิเคชัน DR ในโหมดหยุดทำงาน
ประการแรก เนื่องจากคุณเก็บบริการแอปพลิเคชันไว้ที่ DR คุณจึงใช้โปรแกรมแก้ไขกับระบบไฟล์ RUN ในโหมดหยุดทำงานโดยทำตามขั้นตอนต่อไปนี้:
-
เข้าสู่ระบบ DR application node1.
-
เรียกใช้คำสั่งต่อไปนี้:
$. drinstance.env $ adop phase=apply patches=<patch1, patch2> patchtop=/apps_stage/patch \ apply_mode=downtime options=nodbportion
คุณอาจได้รับข้อความเตือนต่อไปนี้ ถ้าใช่ ให้ตอบด้วย Y
:
[WARNING] adop has detected a configured disaster recovery site.
[WARNING] Follow the instructions in the section "Oracle E-Business Suite
[WARNING]
Maintenance with Standby Database" of Business Continuity for
[WARNING] Oracle E-Business Suite Release 12.2 depending on the database version used.
Do you want to continue with the apply phase [Y/N]? Y
ถัดไป ใช้แพตช์ FMW Tier ทั้งหมดโดยใช้ขั้นตอนมาตรฐาน
ในการซิงโครไนซ์ระบบไฟล์ Run และ Patch ให้รันคำสั่งต่อไปนี้เพื่อให้การเปลี่ยนแปลงที่ทำกับระบบไฟล์ RUN โคลนไปยังระบบไฟล์ Patch:
$. drinstance.env$adop phase=fs_clone
6. แปลง DR กลับเป็นโหมดสแตนด์บายจริงหลังจากโปรแกรมแก้ไข DR ของแอปพลิเคชันเสร็จสิ้น
สุดท้าย คุณต้องแปลงฐานข้อมูล DR กลับเป็นโหมดสแตนด์บายทางกายภาพ เปิดใช้งาน redo apply
ไปยังฐานข้อมูล DR และดำเนินการจัดส่งบันทึกการเก็บถาวรต่อจาก thePROD ไปยังฐานข้อมูล DR
ขั้นแรก ให้แปลงฐานข้อมูล DR กลับเป็นโหมดสแตนด์บายจริง:
-
เข้าสู่ระบบฐานข้อมูล DR node1 และเรียกใช้คำสั่งต่อไปนี้:
$. drinstance.env $ sqlplus / as sysdba; shutdown immediate; startup mount; alter database convert to physical standby; SELECT open_mode, database_role FROM v$database; OPEN_MODE DATABASE_ROLE -------------------- ---------------- MOUNTED PHYSICAL STANDBY ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
-
เข้าสู่ระบบฐานข้อมูล DR node2 และเริ่มต้นอินสแตนซ์โดยเรียกใช้คำสั่งต่อไปนี้:
$. drinstance.env $ sqlplus / as sysdba; startup;
ถัดไป เปิดใช้งานการจัดส่งบันทึกการเก็บถาวรบนฐานข้อมูลหลักโดยเรียกใช้คำสั่งต่อไปนี้:
1. Log onto the production database node1.
2. Run the following commands:
$. prodinstance.env
$ sqlplus / as sysdba;
show parameter log_archive_dest_state_2;
alter system set log_archive_dest_state_2='enable' scope=both sid='*';
alter system set log_archive_dest_state_2='defer' scope=both sid='*';
alter system set log_archive_dest_state_2='enable' scope=both sid='*';
บทสรุป
โพสต์นี้อธิบายวิธีจัดการระบบแอปพลิเคชัน EBS ที่เกิดภัยพิบัติด้วยการอัปเดตและโปรแกรมแก้ไขที่ใช้กับไซต์ PROD EBS 12.2 คุณไม่จำเป็นต้องดูแลรักษาระบบสำรองของแอปพลิเคชันทั้งหมด จากนั้นกู้คืนระบบจากข้อมูลสำรอง คุณอาจต้องการตั้งค่า rsync
ประมวลผลระหว่างไซต์ PROD และ DR และใช้ฐานข้อมูลและโปรแกรมแก้ไข AD Online Patching (ADOP) กับไซต์ DR เมื่อคุณนำไปใช้กับไซต์ PROD
เรียนรู้เพิ่มเติมเกี่ยวกับบริการข้อมูลของเรา
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้