实验目标:
- 根据现有的PDB1在本地克隆出新的PDB2
实验环境:
- 数据库:Oracle 12c R1
- 操作系统:Oracle Linux 7.3
实验步骤:
1、查看PDB
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO
2、关闭需要被克隆的PDB,并打开为只读状态[问题1]
SQL> alter pluggable database pdb1 close immediate;
Pluggable database altered.
SQL> alter pluggable database pdb1 open read only;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ ONLY NO
3、克隆PDB
SQL> create pluggable database pdb2 from pdb1;
Pluggable database created.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ ONLY NO
4 PDB2 MOUNTED
4、打开PDB
SQL> alter pluggable database pdb2 open;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ ONLY NO
4 PDB2 READ WRITE NO
可能存在问题及解决办法:
问题1、步骤2打开PDB为只读失败
SQL> alter pluggable database pdb1 open read only; alter pluggable database pdb1 open read only * ERROR at line 1: ORA-16002: database or pluggable database already open for read/write access by another instance
解决办法:RAC环境可能会出现上述问题,需要在其他节点上都关闭需要克隆的PDB。