Blog này giới thiệu phương pháp sử dụng Database Configuration Assistant (DBCA), tính năng mới trong Oracle 19c để clone remote pluggable database (PDB) vào container database (CDB) mà không cần backup source database.
Việc clone từ source sang target mất thời gian tối thiểu.
Chi tiết Source DB
CDB: LCONCDB PDB: LCON
Dưới đây là tổng số file DBF dưới mỗi container (CDB và PDB) trong source, cần validate sau khi clone sang target. Từ source DB trên, bạn sẽ tạo CDB và PDB trên target host.
Chi tiết Target DB
CDB: - KCONCDB PDB: - KCON
Các pre-steps cần hoàn thành bao gồm:-
- Cài đặt Oracle Database 19c trên target host, hoặc bạn có thể tạo RDBMS19c tar từ source và untar trên target node. Hoặc bạn có thể dùng rsync command từ source sang target để làm RDBMS giống source.
- Tạo xml file để chạy perl adclonectx.pl và cung cấp chi tiết. Sau khi cài đặt/tạo 19c RDBMS, bạn cần tạo context file cho target DB node. Dưới đây là lệnh tạo context file trên 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
Cung cấp giá trị cần thiết cho việc tạo Database Context file mới.
Target System Hostname (virtual or normal) [nglusnj] : nglusnj
Khuyến nghị input của bạn được validated bởi chương trình. Tuy nhiên bạn có thể chọn không validate trong các trường hợp sau:
-Nếu clone context trên source system cho remote system. -Nếu clone context trên machine nơi port bị chiếm và bạn không muốn shutdown service lúc này. -Nếu clone context nhưng database nó cần kết nối không 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
- Sau khi tạo context file trên target DB node, bạn cần cấu hình 19C RDBMS để chạy adcfgclone trên target DB node và truyền context file bạn vừa tạo. Ví dụ sau bao gồm các bước chạy lệnh.
[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 với PDB phải ở archive log mode.
Bạn cần chắc chắn source DB ở archive log mode.
- Chạy DBCA command trên target node để clone CDB và PDB trong 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 nghĩa là Single Instance *-initParams db_unique_name = Target db unique name *-sysPassword = sys user password. *-datafileDestination = dbf file location trong target.
Giờ cả CDB và PDB đã được tạo. 6. Đổi tên PDB vì PDB trùng tên source DB name. Các bước sau giúp bạn đổi tên 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.
Với này clone hoàn tất. Bạn cần validate và match DBF file từ source. Số lượng DBF file phải giống nhau.
Kết luận
Clone PDBs dùng DBCA, tính năng mới trong Oracle 19c ở silent mode là cách đơn giản nhất để clone database trong thời gian tối thiểu. Bạn không cần backup source database và copy backup pieces sang target host để clone, giúp tiết kiệm thời gian.
Sử dụng tab Feedback để đưa ra nhận xét hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.