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

Oracle 12c CDB 與 PDB 參數配置完整指南

     編輯:Oracle 教學

Oracle 12c CDB 與 PDB 參數配置完整指南

Oracle 12c 引入多租戶架構,將資料庫劃分為容器資料庫(CDB)與可攜式資料庫(PDB)。參數管理方式較傳統單實例資料庫更具彈性,但也需掌握層級與作用範圍的關鍵差異。本文系統整理 CDB 與 PDB 參數的設定語法、繼承機制與實務操作建議。

一、CDB 實例參數配置

連接至 Root Container(CDB$ROOT)後,使用 ALTER SYSTEM 修改初始化參數,語法與非 CDB 環境一致。預設僅對當前 Container 生效,以下兩條語句等價:

ALTER SYSTEM SET parameter_name = value;
ALTER SYSTEM SET parameter_name = value CONTAINER = CURRENT;

若需讓參數對所有 Container(包含所有 PDB)生效,請指定 CONTAINER = ALL:

ALTER SYSTEM SET parameter_name = value CONTAINER = ALL;

注意:在 Root Container 以 ALL 修改後,所有 PDB 將繼承該參數值,除非在個別 PDB 中再次單獨覆蓋。

二、PDB 實例參數配置

PDB 可繼承 CDB 以 CONTAINER=ALL 設定的參數,也可在 PDB 內部獨立修改。但前提是該參數支援 PDB 級修改,可透過以下查詢確認:

COLUMN name FORMAT A35
COLUMN value FORMAT A35
SELECT name, value
FROM v$system_parameter
WHERE ispdb_modifiable = 'TRUE'
ORDER BY name;

典型環境約有 170 多個參數支援 PDB 級修改。修改步驟如下:

CONN / AS SYSDBA
ALTER SESSION SET CONTAINER = pdb1;
ALTER SYSTEM SET parameter_name = value;
ALTER SYSTEM SET parameter_name = value CONTAINER = CURRENT;

三、CDB 層級的 ALTER DATABASE 操作

ALTER DATABASE 命令在 CDB 中仍適用,部分操作影響整個 CDB 及所有 PDB,部分僅限 Root Container。具體語法請參考 Oracle 官方文件:
CDB 管理指南

四、PDB 層級的 ALTER PLUGGABLE DATABASE 操作

針對特定 PDB 的管理,建議使用 ALTER PLUGGABLE DATABASE,亦可沿用 ALTER DATABASE 以相容舊版。常見操作範例:

CONN / AS SYSDBA
ALTER SESSION SET CONTAINER = pdb1;

-- 設定預設版本、表空間類型與預設表空間
ALTER PLUGGABLE DATABASE DEFAULT EDITION = ora$base;
ALTER PLUGGABLE DATABASE SET DEFAULT BIGFILE TABLESPACE;
ALTER PLUGGABLE DATABASE SET DEFAULT SMALLFILE TABLESPACE;
ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE users;
ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE temp;

-- 變更全域名稱(會影響服務註冊名稱)
ALTER PLUGGABLE DATABASE OPEN RESTRICTED FORCE;
ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO pdb1a.localdomain;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;

-- 設定時區
ALTER PLUGGABLE DATABASE SET TIME_ZONE = 'GMT';

-- 資料檔離線/上線與儲存調整
ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' OFFLINE;
ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' ONLINE;
ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/cdb1/pdb1/pdb1_users01.dbf' RESIZE 1G AUTOEXTEND ON NEXT 1M;

-- 補充日誌
ALTER PLUGGABLE DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER PLUGGABLE DATABASE DROP SUPPLEMENTAL LOG DATA;

-- 儲存配額控制
ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 5G);
ALTER PLUGGABLE DATABASE STORAGE (MAX_SHARED_TEMP_SIZE 2G);
ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 5G MAX_SHARED_TEMP_SIZE 2G);
ALTER PLUGGABLE DATABASE STORAGE UNLIMITED;

透過儲存配額可限制 PDB 總資料檔大小與共享暫存表空間使用量,防止單一 PDB 佔用過多資源。

五、最佳實務建議

  • 優先在 CDB 以 CONTAINER=ALL 設定通用參數,減少重複維護。
  • 僅在業務真正需要差異化時,於 PDB 內覆蓋參數。
  • 定期查詢 v$system_parameter 中的 ispdb_modifiable 欄位,確認參數可修改範圍。
  • 善用 ALTER PLUGGABLE DATABASE STORAGE 實作資源隔離與配額治理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved