代码改变世界

【Oracle】 Oracle 19C使用DBCA命令行克隆数据库

2022-06-18 14:45  abce  阅读(592)  评论(0编辑  收藏  举报

oracle 19c引入了一个新功能,使用dbca和简单的单行命令复制/克隆oracle数据库的新功能。使用此命令,我们需要手动设置监听器和pfile。其它一切都将由 dbca duplicate命令完成。

在下面的示例中,将主数据库abce克隆到远程服务器上的数据库abce19c。

 

主库:

Hostname -> prod
DBNAME – > abce

  

克隆库:

Hostname -> test
DBNAME – > abce19c

  

1.远程主机上安装oracle 19c rdbms的oracle_home

 

2.创建目录结构

数据文件所在的目录:

mkdir -p /data/oradata

  

3.运行dbca命令

在远程主机的19c oracle_home执行

export ORACLE_HOME=/oracle/app/oracle/product/19.8.0/dbhome_1
cd $ORACLE_HOME/bin

  

语法:

./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}

  

克隆:

$ ./dbca -silent -createDuplicateDB -gdbName abce19c -primaryDBConnectionString prod:1521/abce
-sid abce19c -databaseConfigType SINGLE -initParams db_unique_name=abce19c -sysPassword dbaclass234# -datafileDestination /data/oradata
​
Prepare for db operation
22% complete
Listener config step
44% complete
Auxiliary instance creation
67% complete
RMAN duplicate
89% complete
Post duplicate database operations
100% complete
​
Look at the log file "/oracle/app/oracle/cfgtoollogs/dbca/abce19c/abce19c.log" for further details.

  

这里的sys密码是指主库的sys密码

至此,克隆结束。

检查数据文件:

SQL> select file_name from dba_data_files;
​
FILE_NAME
--------------------------------------------------------------------------------
/data/oradata/abce19c/system01.dbf
/data/oradata/abce19c/sysaux01.dbf
/data/oradata/abce19c/undotbs01.dbf
/data/oradata/abce19c/users01.dbf

  

也创建监听:

oracle@:...le/product/19.8.0/dbhome_1/dbs$ ps -ef | grep tns
oracle 1657 10670 0 18:20:27 pts/1 0:00 grep tns
oracle 1376 1 0 18:23:00 ? 0:01 /oracle/app/oracle/product/19.8.0/dbhome_1/bin/tnslsnr LISTENER -inherit

  

 

https://dbaclass.com/article/clone-a-database-using-dbca-command-in-oracle-19c-new-feature/