1. 程式人生 > >Oracle 12c 資料庫可插拔體系結構

Oracle 12c 資料庫可插拔體系結構

在Oracle 12c資料庫中,可插拔資料庫擁有一些重要的結構,這些結構和非CDB資料庫的結構不同。

下面是一些要點:

CDB:Container Database PDB:Pluggable Database

  • 與CDB連線就是與CDB$ROOT根容器連線。根容器的主要作用是容納所有相關PDB的元資料
  • 可以通過SYS使用者訪問根容器,就像訪問非CDB容器一樣。當登入資料庫伺服器時,可以通過OS方式驗證登入,在不提供使用者名稱和密碼的情況下直接連線根容器。
sqlplus /no log
conn / as sysdba
  • 種子容器PDB$SEED只是用於建立Pluggable資料庫的模板。你可以連接種子容器,但是該Pluggable資料庫是隻讀的。
  • Pluggable資料庫需要使用獨立的名稱空間。在CDB中每個Pluggable資料庫都擁有唯一的名稱,但是在Pluggable資料庫的內部可以使用非CDB資料庫的名稱空間規則。例如:在某個Pluggable資料庫中,表空間和使用者必須擁有唯一的名稱。
  • 每個Pluggable資料庫都擁有本身的SYSTEM表空間和SYSAUX表空間以及臨時表空間。
  • 如果Pluggable資料庫沒有建立TEMP檔案,可以使用根容器的TEMP檔案
  • 每個Pluggable資料庫的SYSTEM表空間中都含有其本身的元資料,如使用者和物件;通過Pluggable資料庫的DBA/ALL/USER級檢視和根容器的CDB級檢視,可以訪問這些元資料。
  • 在CDB中定義的字符集也可以應用於它含有的所有的PDB。
  • 可以為CDB及其所有PDB設定時區時間,也可以單獨為每個PDB設定時區時間。
  • 使用SYS使用者連線根容器後,可以啟動和停止CDB例項。在連線Pluggable資料庫時,無法啟動和停止CDB例項。
  • 在啟動時例項會讀取初始化引數檔案。使用特權使用者連線根容器可以修改所有初始化引數。但是,使用特權使用者連線Pluggable資料庫時,只能修改當前連線的Pluggable資料庫的引數。當你連線Pluggable資料庫並修改初始化引數時,這些修改僅僅對當前連線的Pluggable資料庫生效。在V$PARAMETER檢視的ISPDB_MODIFIABLE列,含有當特權使用者連線Pluggable資料庫時可以修改的引數。
  • 應用程式只能通過網路訪問Pluggable資料庫。因此,必須使用監聽器監聽Pluggable資料庫的相應的服務名。如果監聽器沒有執行的話,應用使用者就無法連線Pluggable資料庫。
  • 單個Pluggable資料庫不能單獨啟動和停止。在啟動和停止Pluggable資料庫時,無法為其分配記憶體和啟動、停止的後臺程序。
  • CDB有一組控制檔案。當特權使用者連線根容器時,可以管理這些控制檔案。
  • CDB有一個UNDO表空間。CDB中的所有Pluggable資料庫都使用同一個UNDO表空間(在RAC時,每個Instance都有一個可用的UNDO表空間)
  • 使用特權使用者連線根容器時,才能啟用和禁用歸檔日誌模式和切換線上聯機日誌;使用擁有SYSDBA許可權的使用者連線Pluggable資料庫,無法切換聯機重做日誌和日誌的歸檔模式。
  • CDB有一個警告日誌檔案和一組跟蹤檔案。所有相關的Pluggable資料庫的資訊都會被寫入同一個CDB的警告日誌中。
  • 每個容器都有一個唯一的ID。根容器的ID為1,種子容器的ID為2。後續建立的所有Pluggable資料庫都會被分配唯一的容器ID。
  • 在FRA(Flashback Area)中,無法單獨為Pluggable資料庫建立目錄;FRA中儲存的是CDB的RMAN備份檔案、控制檔案和聯機重做日誌,它們不會將Pluggable資料庫分別儲存到不同的目錄。
  • 使用特權使用者連線根容器後,可以啟用和禁用閃回資料庫功能(Flashback Database)。但是,無法啟用Pluggable資料庫的閃回功能。
  • AWR、ADDM和ASH報告可以反映CDB中所有PDB的情況。顯示每個Pluggable資料庫的資源使用情況。
  • 在解決SQL效能問題時,通過VSQLVSQLAREA等檢視的CON_ID列,可以檢視指定Pluggable資料庫的資訊。

    (未完,待續)