บล็อกนี้แนะนำวิธีการใช้ Database Configuration Assistant (DBCA) ฟีเจอร์ใหม่ใน Oracle 19c เพื่อ clone remote pluggable database (PDB) เข้าไปใน container database (CDB) โดยไม่ต้อง backup source database
มันใช้เวลาน้อยมากในการ clone จาก source ไป target
Source DB Details
CDB: LCONCDB PDB: LCON
ต่อไปนี้คือจำนวน DBF files ทั้งหมดภายใต้แต่ละ container (CDB และ PDB) ใน source ที่ต้อง validate หลัง clone อยู่ใน target จาก source DB ด้านบน คุณจะสร้าง CDB และ PDB ใน target host
Target DB Details
CDB: - KCONCDB PDB: - KCON
Pre-steps ที่ต้องทำให้เสร็จสิ้นรวมถึง:-
- ติดตั้ง Oracle Database 19c ใน target host หรือคุณสามารถสร้าง RDBMS19c tar จาก source และ untar ใน target node หรือคุณสามารถใช้ rsync command จาก source ไป target เพื่อทำให้ RDBMS เหมือน source
- สร้าง xml file เพื่อรัน perl adclonectx.pl และให้รายละเอียด หลังจาก 19c RDBMS install/create แล้ว คุณต้องสร้าง context file สำหรับ target DB node คำสั่งต่อไปนี้สำหรับสร้าง context file ใน target DB node
`[oraki@nglusnj bin]$ perl adclonectx.pl \
contextfile=/u02/oracle/KCON/product/19.3/appsutil/NYAPP_nglusnj.xml Copyright (c) 2011, 2015 Oracle Corporation Redwood Shores, California, USA
Oracle E-Business Suite Rapid Clone Version 12.2 adclonectx Version 120.30.12020000.22`
Running: /u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jre/bin/java -Xmx600M -Doracle.jdbc.autoCommitSpecCompliant=false -classpath /u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jlib/ojdbc8.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jlib/xmlparserv2.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jlib/java: oracle.apps.ad.context.CloneContext -e /u02/oracle/KCON/product/19.3/appsutil/NYAPP_nglusnj.xml -tmpl /u02/oracle/KCON/product/19.3/appsutil/clone/bin/../context/db/adxdbctx.tmp
Enter the APPS password :
Log file located at /u02/oracle/KCON/product/19.3/appsutil/clone/bin/CloneContext_0227034250.log
Provide the values required for creation of the new Database Context file.
Target System Hostname (virtual or normal) [nglusnj] : nglusnj
แนะนำให้ inputs ของคุณได้รับการ validated โดยโปรแกรม อย่างไรก็ตาม คุณอาจเลือกไม่ validate ภายใต้สถานการณ์ต่อไปนี้:
-If cloning a context on source system for a remote system.
-If cloning a context on a machine where the ports are taken and you do not want to shutdown the services at this point.
-If cloning a context but the database it needs to connect is not available.
Do you want the inputs to be validated (y/n) [n] ? : n
Target System Base Directory : /u02/oracle/KCON
Target Instance is RAC (y/n) [n] :
Target System CDB Name : KCONCDB
Target System PDB Name : KCON
Oracle OS User [oraki] :
Oracle OS Group [dba] :
Role separation is supported y/n [n] ? : n
Number of DATA_TOP's on the Target System [2] :
Target System DATA_TOP Directory 1 [/u02/oracle/KCON/NYAPPCDB] : /u02/oracle/KCON/KCONCDB
Target System DATA_TOP Directory 2 [/u02/oracle/KCON/data] :
Specify value for OSBACKUPDBA group [dba] :
Specify value for OSDGDBA group [dba] :
Specify value for OSKMDBA group [dba] :
Specify value for OSRACDBA group [dba] :
Target System RDBMS ORACLE_HOME Directory [/u02/oracle/KCON/19.0.0] : /u02/oracle/KCON/product/19.3
Do you want to preserve the Display [nglusnj:0.0] (y/n) : y
Target System Port Pool [0-99] : 20 Report file located at /u02/oracle/KCON/product/19.3/appsutil/temp/portpool.lst
New context path and file name [/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml] : /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml file already exists.
Do you want to overwrite it (y/n) [n] ? : y Replacing /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml file. The new database context file has been created : /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml contextfile=/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml Check Clone Context logfile /u02/oracle/KCON/product/19.3/appsutil/clone/bin/CloneContext_0227034250.log for details. [oraki@nglusnj bin]$ perl
- เมื่อคุณสร้าง context file ใน target DB node แล้ว คุณต้อง configure 19C RDBMS เพื่อรัน adcfgclone ใน target DB node และส่ง context file ที่คุณสร้างข้างต้น ตัวอย่างต่อไปนี้ครอบคลุมขั้นตอนในการรันคำสั่ง
[oraki@nglusnj bin]$ perl adcfgclone.pl dbTechStack /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml
Copyright (c) 2002, 2015 Oracle Corporation Redwood Shores, California, USA
Oracle E-Business Suite Rapid Clone Version 12.2 adcfgclone Version 120.63.12020000.65
Enter the APPS password :
Running Rapid Clone with command:
Running: perl /u02/oracle/KCON/product/19.3/appsutil/clone/bin/adclone.pl java=/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jre mode=apply stage=/u02/oracle/KCON/product/19.3/appsutil/clone component=dbTechStack method=CUSTOM dbctxtg=/u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml showProgress contextValidated=false
Beginning rdbms home Apply - Sat Feb 27 04:25:16 2021
/u02/oracle/KCON/product/19.3/appsutil/clone/bin/../jre/bin/java -Xmx600M -Doracle.jdbc.autoCommitSpecCompliant=false -DCONTEXT_VALIDATED=false -Doracle.installer.oui_loc=/u02/oracle/KCON/product/19.3/oui -classpath /u02/oracle/KCON/product/19.3/appsutil/clone/jlib/xmlparserv2.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/ojdbc8.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/java:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/oui/OraInstaller.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/oui/ewt3.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/oui/share.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/oui/srvm.jar:/u02/oracle/KCON/product/19.3/appsutil/clone/jlib/ojmisc.jar oracle.apps.ad.clone.ApplyDBTechStack -e /u02/oracle/KCON/product/19.3/appsutil/KCON_nglusnj.xml -stage /u02/oracle/KCON/product/19.3/appsutil/clone -showProgress APPS Password : Log file located at /u02/oracle/KCON/product/19.3/appsutil/log/KCON_nglusnj/ApplyDBTechStack_02270425.log | 0% completed
Log file located at /u02/oracle/KCON/product/19.3/appsutil/log/KCON_nglusnj/ApplyDBTechStack_02270425.log
0% completed
Completed Apply...
- Source CDB พร้อม PDB ควรอยู่ใน archive log mode
คุณต้องแน่ใจว่า source DB อยู่ใน archive log mode
- รัน DBCA command บน target node เพื่อ clone CDB และ PDB ใน VNC
SYNTAX:
./dbca -silent -createDuplicateDB -gdbName {CLONE_DB_NAME} -primaryDBConnectionString <hostname:port/service> -sid {CLONE_DB_SID} -databaseConfigType SINGLE -initParams db_unique_name={CLONE_DB_NAME} -sysPassword {PRIMARY_DB_SYS_PWD} -datafileDestination {CLONE_DATAFILE_LOC}
[oraki@nglusnj ~]$ dbca -silent -createDuplicateDB -gdbName KCONCDB -sid KCONCDB -primaryDBConnectionString nglusnj:1551/LCONCDB -databaseConfigType SI -initParams db_unique_name=KCONCDB -sysPassword LCON5yspwd! -datafileDestination /u02/oracle/KCON/product/oradata/KCONCDB
*-gdbName = Target Global Database Name. *-sid= Target sid Name *-primaryDBConnectionString = Source connection String.. *-databaseConfigType = SI means Single Instance *-initParams db_unique_name = Target db unique name *-sysPassword = sys user password. *-datafileDestination = dbf file location in target.
ตอนนี้ CDB และ PDB ถูกสร้างแล้วทั้งคู่
6. Rename PDB เนื่องจาก PDB มีชื่อเดียวกับ source DB name ขั้นตอนต่อไปนี้จะช่วยคุณ rename PDB
SQL> alter session set container=LCON;
Session altered.
SQL> shutdown immediate; Pluggable Database closed. SQL> startup open restrict; Pluggable Database opened. SQL> alter pluggable database LCON rename global_name to KCON;
Pluggable database altered.
SQL> shutdown immediate; Pluggable Database closed. SQL> alter database open;
Database altered.
ด้วยนี้ cloning เสร็จสมบูรณ์ คุณต้อง validate และ match DBF file จาก source จำนวน DBF file ควรเหมือนกัน
สรุป
การ Clone PDBs ด้วย DBCA ฟีเจอร์ใหม่ใน Oracle 19c ใน silent mode เป็นวิธีที่ง่ายที่สุดในการ clone database ในเวลาน้อยที่สุด คุณไม่จำเป็นต้อง backup source database และ copy backup pieces ไป target host สำหรับ cloning ซึ่งช่วยประหยัดเวลาด้วย
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มการสนทนากับเราได้