Oracle 12c CDB和PDB的切换

时间:2022-04-05 20:21:27

Oracle 12c 开始支持 PLUGGABLE DATABASE,并且提供了一个方法在CDB和PDB之间切换。


1. 使用 show pdbs 可以确认当前有哪些PDB?

[sql]  view plain  copy
  1. SQL> show pdbs  
  2.   
  3.     CON_ID CON_NAME           OPEN MODE  RESTRICTED  
  4. ---------- ------------------------------ ---------- ----------  
  5.      2 PDB$SEED           READ ONLY  NO  
  6.      3 TESTP1             MOUNTED  
  7. SQL>   

上图中 PDB$SEED 并不是一个 PDB 而是一个 PDB的模板,状态始终是 READ ONLY。TESTP1 是一个PDB。


2. 切换到 TESTP1。

[sql]  view plain  copy
  1. SQL> alter session set container=TESTP1;  
  2.   
  3. Session altered.  
  4.   
  5. SQL> show pdbs;  
  6.   
  7.     CON_ID CON_NAME           OPEN MODE  RESTRICTED  
  8. ---------- ------------------------------ ---------- ----------  
  9.      3 TESTP1             MOUNTED  
  10. SQL>   

3. 切回到 CDB。

[sql]  view plain  copy
  1. SQL> alter session set container=CDB$ROOT;  
  2.   
  3. Session altered.  
  4.   
  5. SQL> show pdbs  
  6.   
  7.     CON_ID CON_NAME           OPEN MODE  RESTRICTED  
  8. ---------- ------------------------------ ---------- ----------  
  9.      2 PDB$SEED           READ ONLY  NO  
  10.      3 TESTP1             MOUNTED  
  11. SQL>