1 说明
克隆PDB在12.1中就已经有了,但是无法实现在线克隆PDB。而从12.2开始,Oracle支持在读写状态下克隆PDB。
源PDB可以是本地的PDB,远端的PDB,或者是non-CDB(non-CDB在以后版本中就不再支持)。
在线克隆PDB是有条件的:源CDB必须是归档模式,而是是本地UNDO模式。
这个特性可以帮助你创建一个或多个PDB用于测试,而保证源库的安全。
这个和迁移PDB时有却别的:迁移PDB就是源PDB是要删除的。
关于迁移PDB,请参考:
http://www.cndba.cn/Expect-le/article/2495
2 克隆本地PDB
示意图:
语法:
CREATE PLUGGABLE DATABASE pdb2 FROM pdb1[NO DATA]; --不包含数据
或
CREATE PLUGGABLE DATABASE pdb2 FROM pdb1
PATH_PREFIX = '/disk2/oracle/pdb2/'
FILE_NAME_CONVERT = ('/disk1/oracle/pdb1/', '/disk2/oracle/pdb2/')
SERVICE_NAME_CONVERT = ('salesrep_ca','salesrep_or','orders_ca','orders_or')
NOLOGGING;
3 克隆远端PDB
示意图:
语法:
CREATE PLUGGABLE DATABASE pdb2 FROM pdb1@pdb1_link;
4 克隆non-CDB
示意图:
语法:
CREATE PLUGGABLE DATABASE pdb2 FROM mydb@mydb_link;
在克隆完成后,一定要执行@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql脚本,然后才能打开PDB。