โพสต์นี้กล่าวถึงกระบวนการของการโคลนแบบทีละขั้นตอนด้วย Oracle®E-Business Suite® (EBS) R12.2 ภายในองค์กรบนฐานข้อมูลเวอร์ชัน 19c โดยใช้ Recovery Manager (RMAN) การสำรองข้อมูลแบบ Hot บน Red Hat® Enterprise Linux® เซิร์ฟเวอร์ ขั้นตอนเหล่านี้ใช้กับระบบปฏิบัติการที่แตกต่างกันด้วย
โคลน EBS
ในการโคลน EBS คุณต้องทำตามขั้นตอนระดับสูงต่อไปนี้:
- เรียกใช้ยูทิลิตีพรีโคลนบนฐานข้อมูลต้นทางและโหนดแอปพลิเคชัน
- สำรองฐานข้อมูลคอนเทนเนอร์ฐานข้อมูล (CDB) แบบเต็มพร้อมที่เก็บถาวรโดยใช้การสำรองข้อมูล RMAN Hot และคัดลอกไปยังโหนดเป้าหมาย
- ล้างฐานข้อมูลเป้าหมายและโหนดแอปพลิเคชัน
- คัดลอกไบนารีแอปพลิเคชันต้นทางและไบนารีฐานข้อมูลไปยังโหนดเป้าหมาย
- กำหนดค่า $Oracle_Home บนโหนดฐานข้อมูลเป้าหมาย
- กู้คืนและกู้คืนฐานข้อมูล
- ดำเนินการตามขั้นตอนหลังการคืนค่าบนโหนดฐานข้อมูลเป้าหมาย
- กำหนดค่าแอปพลิเคชันบนโหนดแอปพลิเคชันเป้าหมาย
- ทำตามขั้นตอนหลังโคลนบนโหนดแอปพลิเคชัน
- เริ่มบริการแอปพลิเคชันเป้าหมาย
นี่คือขั้นตอนโดยละเอียด:
1. เรียกใช้ยูทิลิตี้พรีโคลน
เรียกใช้ยูทิลิตีพรีโคลนบนโหนดฐานข้อมูลต้นทางและโหนดแอปพลิเคชันเพื่อสร้างไดรเวอร์และไฟล์การกำหนดค่า ยูทิลิตีนี้กำหนดค่าฐานข้อมูลและไบนารีของแอปพลิเคชันบนโหนดเป้าหมายก่อนที่จะคัดลอกฐานข้อมูลและไบนารีของแอปพลิเคชันไปยังโหนดเป้าหมาย
ก. รันคำสั่งต่อไปนี้เพื่อซอร์สไฟล์สภาพแวดล้อมฐานข้อมูลแบบเสียบได้ (PDB) บนโหนดฐานข้อมูลที่ $ORACLE_HOME:
cd $ORACLE_HOME
. <PDB_NAME>_hostname.env
cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME
perl adpreclone.pl dbTier
ข. เรียกใช้คำสั่งต่อไปนี้บนโหนดแอปพลิเคชัน:
. EBSApps run (Source RUN FS)
cd $ADMIN_SCRIPTS_HOME
perl adpreclone.pl appsTier
2. สำรองข้อมูล CDB
สำรองฐานข้อมูล CDB ทั้งหมดพร้อมไฟล์เก็บถาวรโดยใช้ RMAN Hot backup และคัดลอกไปยังโหนดเป้าหมาย:
ก. รันคำสั่งต่อไปนี้เพื่อซอร์สไฟล์สภาพแวดล้อม CDB ที่ $ORACLE_HOME:
cd $ORACLE_HOME
. <CDB_NAME>_hostname.env
connect target /
ข. เรียกใช้คำสั่งต่อไปนี้เพื่อทำตามขั้นตอนนี้:
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
BACKUP as compressed backupset FULL FILESPERSET 10 FORMAT '<Backup location>/<SID>_bk_%s_%p_%t.bak' DATABASE;
BACKUP as compressed backupset filesperset 10 FORMAT '<Backup location>/<SID>_arch_%s_%p_%t.bak' ARCHIVELOG ALL skip inaccessible;
BACKUP FORMAT '<Backup location>/<SID>_cntrl_%s_%p_%t.bak' CURRENT CONTROLFILE;
RELEASE CHANNEL d1;
RELEASE CHANNEL d2;
RELEASE CHANNEL d3;
RELEASE CHANNEL d4;
}
หลังจากสำรองข้อมูลเสร็จแล้ว ให้ย้ายไปยังตำแหน่งเป้าหมายหรือ Network File System (NFS) แชร์จุดเชื่อมต่อสำรองไปยังโหนดเป้าหมายเพื่อประหยัดเวลา
3. ทำความสะอาด
ล้างฐานข้อมูลเป้าหมายและโหนดแอปพลิเคชัน
รันขั้นตอนต่อไปนี้บนโหนดฐานข้อมูล:
ก. สำรองข้อมูลไฟล์การกำหนดค่าและไดเร็กทอรีที่สำคัญต่อไปนี้ก่อนที่คุณจะล้างข้อมูล:
- $CONTEXT_FILE
- ไฟล์สภาพแวดล้อม
- dbs
- ไดเรกทอรี $TNS_ADMIN
ข. ลบเป้าหมาย OH และวางฐานข้อมูล
ค. ลบเนื้อหาของ oraInventory .
โปรดทราบว่า UTL ไดเร็กทอรีไม่ควรมีลิงก์สัญลักษณ์ หากมีลิงก์สัญลักษณ์ ให้ลบออกและสร้างโครงสร้างไดเร็กทอรีจริง
เรียกใช้ขั้นตอนต่อไปนี้บนโหนดแอปพลิเคชัน:
ก. สำรองข้อมูลของ RUN และ PATCH $CONTEXT_FILE และ $TNS_ADMIN ไดเรกทอรีของ RUN FS .ข. จดบันทึกโหนดเป้าหมาย RUN FS ก่อนทำความสะอาดแอพพลิเคชั่น node.c. ทำความสะอาด FS1 , FS2 , FS_NE และ oraInventory ไดเรกทอรี
4. คัดลอกไบนารี
ทำตามขั้นตอนต่อไปนี้เพื่อคัดลอกไบนารีแอปพลิเคชันต้นทางและไบนารีฐานข้อมูลไปยังโหนดเป้าหมาย
ก. บนโหนดฐานข้อมูล ให้คัดลอกและถ่ายโอนไบนารีเวอร์ชัน 19.0.0(19c) ไปยังเซิร์ฟเวอร์ฐานข้อมูลเป้าหมาย
ข. บนโหนดแอปพลิเคชัน ให้โอนเฉพาะ EBSapps ไดเรกทอรีของ RUN FS จากต้นทางไปยังโหนดเป้าหมายภายใต้เป้าหมาย RUN FS .
5. กำหนดค่า $Oracle_Home
กำหนดค่า $Oracle_Home บนโหนดฐานข้อมูลเป้าหมาย
ก่อนเรียกใช้ adcfgclone.pl
ในการกำหนดค่า $Oracle_Home ให้ล้าง oraInventory ไดเรกทอรี หากคุณกำลังทำการโคลนบนเซิร์ฟเวอร์ใหม่เป็นครั้งแรก ให้รันเฉพาะขั้นตอนต่อไปนี้และระบุค่าสำหรับอินพุตทั้งหมด ทำตามขั้นตอนต่อไปนี้:
ก. สร้างไฟล์บริบท:
cd $ORACLE_HOME/appsutil/clone/bin
perl adclonectx.pl contextfile=<Source database context file> template=$ORACLE_HOME/appsutil/template/adxdbctx.tmp [pairsfile=<Pairs file Path>]
perl adcfgclone.pl dbTechStack <Full Path of CONTEXT_FILE>
ข. สร้าง listener.ora และ tnsnames.ora :
cd $ORACLE_HOME/appsutil
./txkSetCfgCDB.env -dboraclehome=<ORACLE_HOME>
cd $ORACLE_HOME/appsutil/bin
perl txkGenCDBTnsAdmin.pl -dboraclehome=$ORACLE_HOME -cdbname=<target CDB NAME> \
-cdbsid=<SID> -dbport=<Target DB port> -outdir=$ORACLE_HOME/appsutil/log \
-israc=<yes/no> [-virtualhostname=<virtual hostname>]
ค. หากเป็นอินสแตนซ์ที่โคลนซ้ำแล้วซ้ำอีก ให้ใช้ CONTEXT_FILE สำรองเพื่อกำหนดค่าไบนารีฐานข้อมูลเป้าหมาย:
cd <RDBMS ORACLE_HOME>/appsutil/clone/bin
perl adcfgclone.pl dbTechStack <Full Path of CONTEXT_FILE backup location>
ง. หากเป็นอินสแตนซ์ที่โคลนซ้ำ ให้เปลี่ยน dbs และ TNS ไฟล์เพื่อให้ไฟล์การกำหนดค่าและพารามิเตอร์ init ทั้งหมดไม่เสียหายหลังการกำหนดค่า
อี เริ่มผู้ฟัง
6. กู้คืนและกู้คืนฐานข้อมูล
หลังจากที่คุณกำหนดค่า $Oracle_Home แล้ว ให้เริ่มการคืนค่าฐานข้อมูลเป้าหมายโดยใช้ข้อมูลสำรองที่คุณใช้ก่อนหน้านี้:
ก. ก่อนกู้คืน ให้ตรวจสอบว่าพารามิเตอร์ต่อไปนี้ถูกต้องในโหนดเป้าหมาย
- db_file_name_convert
- log_file_name_convert
ข. เริ่มฐานข้อมูลเป้าหมายใน nomount
รัฐและเรียกใช้คำสั่ง RMAN ต่อไปนี้เพื่อกู้คืนฐานข้อมูล:
Rman auxiliary /
run
{
allocate auxiliary channel d1 device type disk;
allocate auxiliary channel d2 device type disk;
allocate auxiliary channel d3 device type disk;
duplicate database to '<CDB NAME>' backup location '<RMAN backup location>' nofilenamecheck;
release channel d1;
release channel d2;
release channel d3;
}
7. กำหนดเป้าหมายขั้นตอนหลังการคืนค่า
ทำตามขั้นตอน post -restore บนโหนดฐานข้อมูลเป้าหมาย
หลังจากการกู้คืนฐานข้อมูล CDB เสร็จสิ้นและคุณเปิดอินสแตนซ์ CDB ให้ทำตามขั้นตอนต่อไปนี้:
ก. ซอร์สไฟล์ CDB env และเปลี่ยนชื่อ PDB เนื่องจากคุณกู้คืนเป็น PDBname ต้นทาง ใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนชื่อ PDB เป้าหมาย:
sqlplus / as sysdba
SQL> alter pluggable database "<Source PDB Name>" close;
SQL> alter pluggable database "<Source PDB Name>" unplug into '<ORACLE_HOME>/dbs/<Source PDB Name>_PDBDesc.xml';
SQL> drop pluggable database "<Source PDB Name>";
SQL> create pluggable database "<Target PDB Name>" using '<ORACLE_HOME>/dbs/<PDB Name>_PDBDesc.xml' NOCOPY SERVICE_NAME_CONVERT=('ebs_<Source PDB Name>','ebs_<Target PDB Name>','<Source PDB Name>_ebs_patch','<Target PDB Name>_ebs_patch');
SQL> alter pluggable database "<Target PDB Name>" open read write;
SQL> alter pluggable database all save state instances=all;
SQL> sho pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
------ ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
4 <PDB Name> READ WRITE NO
ข. แหล่งที่มาของไฟล์ PDB env และดำเนินการคำสั่งต่อไปนี้เพื่อกำหนดเป้าหมายUTL_FILE_DIR ค่าในฐานข้อมูล Oracle:
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -mode=getUtlFileDir
ค. เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไข
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -mode=setUtlFileDir
ง. เรียกใช้สคริปต์ต่อไปนี้สำหรับแต่ละเส้นทางใน
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -mode=createDirObject
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -mode=syncUtlFileDir -skipautoconfig=yes
cd $ORACLE_HOME/appsutil/install/$CONTEXT_NAME
sqlplus / as sysdba @adupdlib.sql <libext>
clean FND_NODE table
sqlplus apps/<Source Apps password>
EXEC FND_CONC_CLONE.SETUP_CLEAN;
Commit;
อี ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ adautocfg.sh :
cd <$ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME>
sh adautocfg.sh
8. กำหนดค่าแอปพลิเคชันเป้าหมาย
กำหนดค่าแอปพลิเคชันบนโหนดแอปพลิเคชันเป้าหมาย:
ก. ก่อนเริ่ม adcfgclone.pl ทำความสะอาด PATCH FS , FS_NE และ oraInventory ไดเรกทอรี
ข. เรียกใช้คำสั่งต่อไปนี้เพื่อกำหนดค่าแอปพลิเคชัน:
cd <COMMON_TOP>/clone/bin
export TIMEDPROCESS_TIMEOUT=-1
export T2P_JAVA_OPTIONS="-Djava.io.tmpdir=<Temp directory location>"
perl ./adcfgclone.pl appsTier dualfs
ค. ระบุข้อมูลทั้งหมดที่นี่
ง. หากเป็นอินสแตนซ์การโคลนซ้ำ คุณยังสามารถใช้ข้อมูลสำรองของ CONTEXT_FILE ได้อีกด้วย เรียกใช้คำสั่งต่อไปนี้:
perl ./adcfgclone.pl appsTier <location of CONTEXT_FILE backup> dualfs
9. ขั้นตอนหลังการโคลนแอปพลิเคชัน
ทำตามขั้นตอนหลังการโคลนบนโหนดแอปพลิเคชัน:
ก. หลังจากที่คุณกำหนดค่าแอปพลิเคชันแล้ว ให้เปลี่ยนแอป ดูแลระบบ และรหัสผ่านสคีมาที่กำหนดเอง หากมี โดยใช้ FNDCPASS
คำสั่ง
ข. หลังจากเปลี่ยนรหัสผ่านแอปแล้ว ให้เรียกใช้ Autoconfig
บนโหนดฐานข้อมูลและโหนดแอปพลิเคชัน
ค. ทำตามขั้นตอนอื่นๆ ที่กำหนดเอง หากมี สำหรับอินสแตนซ์ที่โคลน
10. เริ่มบริการแอปพลิเคชันเป้าหมาย
ตอนนี้คุณสามารถเริ่มบริการแอปพลิเคชันทั้งหมดของอินสแตนซ์โคลนเป้าหมายและทำการตรวจสอบความสมบูรณ์ของอินสแตนซ์ที่โคลนแล้ว
บทสรุป
เมื่อใช้ขั้นตอนก่อนหน้านี้ คุณสามารถโคลนหรือรีเฟรชอินสแตนซ์ PROD ไปยังเซิร์ฟเวอร์ที่ไม่ใช่ผลิตภัณฑ์ที่มีฐานข้อมูลเวอร์ชัน 19c ที่มีสถาปัตยกรรมแบบหลายผู้รับได้
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้