oracle 12.1还不支持在线克隆pdb,需要启动到read only模式,生产环境无法接受。突然想到生产库有dg库,dg库本来就是只读的,能不能直接用它作为克隆?查了下文章还真有这种方法,记录一下有空测试。
源库(dg库要启到read only模式):
SQL> connect sys/oracle@//192.168.78.105/STCDB as sysdba
Connected.
SQL> select banner from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
SQL> select name,open_mode,database_role from v$database;
NAME OPEN_MODE DATABASE_ROLE
--------- -------------------- ----------------
STCDB READ ONLY PHYSICAL STANDBY
SQL> select name,open_mode from v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
STDB1 READ ONLY
目标库,先创建dblink
SQL> connect sys/oracle@//192.168.78.113/CDB as sysdba
Connected.
SQL> select banner from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
CDB READ WRITE
SQL> select name,open_mode from v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDB READ WRITE
SQL> create database link DBLINK_TO_STCDB connect to system identified by oracle using '//192.168.78.105/STCDB';
Database link created.
利用dblink从dg库克隆,创建目标pdb
SQL> create pluggable database STDB2 from STDB1@DBLINK_TO_STCDB;
Pluggable database created.
SQL> alter pluggable database STDB2 open;
Pluggable database altered.
很简单方便,而且不会影响到主库