12C關於CDB、PDB引數的區別和總結

lusklusklusk發表於2020-02-09

以下結論皆經過實驗驗證,版本12.2,為方便理解,本文中CDB指的是根容器CDB$ROOT


1、CDB和PDB共用一個引數檔案,CDB使用spfileSID.ora,則PDB裡面show parameter spfile時看到的也是spfileSID.ora,CDB使用spfile.ora,則PDB裡面show parameter spfile時看到的也是spfile.ora,CDB使用initSID.ora,則PDB裡面show parameter spfile時也看不到任何檔案,PDB的引數資訊不會出現在spfile或pfile檔案中,而是直接從CDB中繼承。



2、CDB執行alter system修改引數無論加不加CONTAINER,也無論CONTAINER值是ALL還是CURRENT,PDB也一樣修改了;PDB執行alter system修改引數,只對該PDB生效,PDB執行alter system修改引數不能加CONTAINER = ALL,否則報錯ORA-65050: Common DDLs only allowed in root,CONTAINER = ALL只能在CDB容器執行。


以下兩條語句等價,因為CONTAINER的預設值是CURRENT

ALTER SYSTEM SET parameter_name=value;

ALTER SYSTEM SET parameter_name=value CONTAINER=CURRENT;


以下兩條語句在CDB中等價,因為CDB修改了,PDB也一樣修改了

ALTER SYSTEM SET parameter_name=value;

ALTER SYSTEM SET parameter_name=value CONTAINER=ALL;



3、PDB能夠執行alter system修改的引數,必須是該引數對應的V$SYSTEM_PARAMETER.ISPDB_MODIFIABLE='TRUE',否則會報錯ORA-65040: operation not allowed from within a pluggable database,PDB執行alter system修改的引數的資訊存放在CDB的PDB_SPFILE$中,而不是PDB的PDB_SPFILE$中,PDB的PDB_SPFILE$表永遠都是空的。PDB執行alter system修改的引數無論資料庫重啟、CDB重新修改、克隆、unplug等等操作,該引數在該PDB中不變繼續生效,也就是說手工修改某個PDB的引數之後,那麼此引數在這個PDB中就不受CDB引數控制了,再修改CDB的引數也無法修改該PDB的這個引數值,因為該引數和該PDB的資訊已經存放在了資料字典中。


PDB從CDB繼承引數值,除非引數已經在PDB級別被重寫,PDB級別被重寫的引數資訊儲存在CDB的PDB_SPFILE$中,PDB優先參照CDB中PDB_SPFILE$該PDB的引數,如果CDB的PDB_SPFILE$被清空,則PDB自動從CDB繼承引數值。每個容器都有一個PDB_SPFILE$,即PDB_SPFILE$在CDB和PDB級別都存在,但只有CDB的PDB_SPFILE$有值,PDB的PDB_SPFILE$都是空的。


當然如果某個PDB執行alter system修改時加了scope為memory,資訊不會寫入CDB的PDB_SPFILE$中,PDB在重啟後該引數失效,和11g一樣



4、PDB執行unplug後該PDB的引數資訊會寫進xml檔案,此時CDB的PDB_SPFILE$中還有該PDB的引數資訊,show pdbs還可以看到該PDB, 也就是說當一個PDB被拔出時,它自己的初始化引數不會複製到PDB自己的PDB_SPFILE$中,仍舊存在CDB的PDB_SPFILE$中。當執行drop pluggable database後,CDB的PDB_SPFILE$看不到該PDB的記錄了,該PDB的記錄被清除了,show pdbs也看不到該PDB,當該PDB重新create using xml到CDB時後,該引數會重新載入回PDB並寫入CDB的PDB_SPFILE$中



5、v$system_parameter可以檢視到CDB和所有PDB的引數(PDB$SEED除外),每個容器以con_id區分。




問答:

1. CDB級別修改引數是否影響到PDB級別?

會,會影響到所有PDB,除非某個PDB自己單獨修改過該引數


2. PDB級別修改引數是否影響到CDB級別?

不會,不會影響到CDB級別及其它PDB。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2674870/,如需轉載,請註明出處,否則將追究法律責任。

相關文章