1. 程式人生 > >Oracle 12C R1 PDB克隆實驗(1):通過已有PDB在本地克隆出新的PDB

Oracle 12C R1 PDB克隆實驗(1):通過已有PDB在本地克隆出新的PDB

實驗目標:

  • 根據現有的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。