首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 12c CDB 與 PDB 啟動關閉操作全指南:手動、自動與觸發器自動化

     編輯:Oracle 教學

Oracle 12c CDB 與 PDB 啟動關閉操作全指南:手動、自動與觸發器自動化

12c 多租戶架構下,CDB 與 PDB 的啟動/關閉邏輯較傳統單實例更豐富。本文系統整理 CDB 標準啟關、PDB 兩種操作模式(SQL*Plus 命令與 ALTER PLUGGABLE DATABASE)、多 PDB 批次控制、以及觸發器實現 PDB 隨 CDB 自動 OPEN的最佳實務。

一、CDB (Container Database) 啟動與關閉

語法與非 CDB 完全一致:

STARTUP [NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
SHUTDOWN [IMMEDIATE | ABORT]

關鍵行為:

  • 關閉 CDB 時,會自動關閉所有 PDB(隱式 SHUTDOWN IMMEDIATE)
  • 啟動 CDB 後,PDB 預設僅到 MOUNT 狀態,不會自動 OPEN
  • 需手動 OPEN PDB,或配置觸發器自動化

二、PDB 操作模式一:SQL*Plus 命令

先切換 Session 至目標 PDB,再使用標準啟關命令:

-- 當前在 CDB$ROOT
SQL> ALTER SESSION SET CONTAINER = pdbcndba;
SQL> STARTUP;  -- 或 STARTUP OPEN READ WRITE [RESTRICT] / STARTUP OPEN READ ONLY / STARTUP UPGRADE
SQL> SHUTDOWN [IMMEDIATE];

注意: 切換至 PDB 後,V$PDBS 僅顯示當前 PDB 資訊。

三、PDB 操作模式二:ALTER PLUGGABLE DATABASE(推薦)

可在 CDB 或 PDB 中執行,支援批次控制多個 PDB:

1. 在 PDB 內執行

ALTER PLUGGABLE DATABASE OPEN [READ WRITE | READ ONLY | UPGRADE] [RESTRICTED] [FORCE];
ALTER PLUGGABLE DATABASE CLOSE [IMMEDIATE];

2. 在 CDB (Root) 執行 - 單一/多個 PDB

-- 在 CDB$ROOT
SQL> ALTER PLUGGABLE DATABASE ALL CLOSE;
-- 所有 PDB 變為 MOUNTED

SQL> ALTER SESSION SET CONTAINER = pdbcndba;
SQL> ALTER PLUGGABLE DATABASE OPEN;
-- 單一 PDB 開啟 READ WRITE

五、PDB 自動 OPEN 觸發器(生產環境必備)

CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
  EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/

原理: CDB 完成 OPEN 後觸發 AFTER STARTUP,動態 SQL 執行批次開啟。
注意: 觸發器在 CDB$ROOT 建立,需 ADMINISTER DATABASE TRIGGER 權限。

六、狀態查詢速查

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved