克隆远程non-cdb到本地cdb中
将远程的非容器数据库PROD克隆到本地cdb1中,pdb名为prodpdb
read only 启动 PROD
$ export ORACLE_SID=PROD
$ sqlplus / as sysdba
SYS@PROD> startup open read only;
SYS@PROD> select open_mode from v$database;
查看监听器状态和 tnsnames.ora
$ lsnrctl status
ervice “PROD.enmoedu.com” has 1 instance(s).
Instance “PROD”, status READY, has 1 handler(s) for this service…
$ cd $ORACLE_HOME/network/admin
$ cat tnsnames.ora
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = enmoedu1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD.enmoedu.com)
)
)
cdb1 中创建 dblink
prod=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.18.3.177)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD.enmoedu.com)
)
)
SYS@cdb1> create database link lk_prod connect to system identified by oracle using ‘prod’;
验证dblink:
SYS@cdb1> select file_name from dba_data_files@lk_prod;
使用 db link 查看, 同时验证 db link 可用
创建 prodpdb 目录
SYS@cdb1> !mkdir /u01/app/oracle/oradata/cdb1/prodpdb
克隆 no-CDB
SYS@cdb1> create pluggable database prodpdb from non$cdb@lk_prod file_name_convert=(’/u01/app/oracle/oradata/PROD’,’/u01/app/oracle/oradata/cdb1/prodpdb’);
Pluggable database created.
prodpdb mount 状态执行 noncdb_to_pdb 脚本
SYS@cdb1> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
3 PDB1 MOUNTED
4 PRODPDB MOUNTED
5 PDB5 READ WRITE NO
SYS@cdb1>
配置 tnsnames.ora
prodpdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lzy02)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PRODPDB)
)
)
$ sqlplus sys/oracle@prodpdb as sysdba
SYS@prodpdb> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
4 PRODPDB MOUNTED
SYS@prodpdb>
SYS@prodpdb> @?/rdbms/admin/noncdb_to_pdb.sql
脚本执行时间比较长, 请耐心等待!
脚本执行过程中SYS@prodpdb> 状态
SYS@prodpdb> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
4 PRODPDB MIGRATE YES
SYS@prodpdb>
脚本执行完成 查看 pdb 状态
SYS@pdb4> show pdbs
open 打开 pdb
SYS@prodpdb> alter pluggable database PRODPDB open;
SYS@prodpdb> show pdbs




