1. 程式人生 > >【跟我學oracle18c】第十九天:Multitenant Architecture:2.5 Overview of Tablespaces and Database Files in a CDB

【跟我學oracle18c】第十九天:Multitenant Architecture:2.5 Overview of Tablespaces and Database Files in a CDB

2.5 Overview of Tablespaces and Database Files in a CDB

CDB的結構與非CDB相同,不同之處是每個PDB和應用程式根都有自己的表空間集,包括自己的系統SYSAUX和undo表空間.

A CDB contains the following files:

  • 一個控制檔案

  • 一個聯機重做日誌

  • 一個或多個撤銷表空間
    只有具有適當特權且當前容器是根目錄的普通使用者才能建立撤銷表空間。在任何給定時間,CDB都處於以下撤銷模式之一:

    • Local undo mode

      在這種情況下,每個PDB都有自己的undo表空間。如果CDB使用本地撤銷模式,那麼資料庫將在每個PDB中自動建立撤銷表空間。本地撤銷提供了一些優勢,例如能夠執行PDB的熱克隆,以及加速PDB的重新定位。此外,本地撤銷提供了隔離級別,並支援更快的拔插和時間點恢復操作。

      在開啟PDB的Oracle Real Application Clusters (RAC)叢集中,每個節點都需要一個本地undo表空間。例如,如果將一個PDB從一個兩個節點的叢集移動到一個四個節點的叢集,並且如果PDB在所有節點中都是開啟的,那麼資料庫將自動建立所需的其他撤銷表空間。如果再次移動PDB,那麼可以刪除冗餘的撤銷表空間。

      Note:

      預設情況下,資料庫配置助理(DBCA)在啟用本地撤銷的情況下建立新的CDBs。

    • Shared undo mode

      在一個單例項CDB中,只有一個活動的撤銷表空間存在。對於Oracle RAC CDB,每個例項都存在一個活動的undo表空間。所有撤銷表空間在所有容器的資料字典和相關檢視中都是可見的。

    撤銷模式適用於整個CDB,這意味著每個容器都使用共享撤銷,或者每個容器都使用本地撤銷。在CDB中可以在撤銷模式之間切換,這就需要重新啟動資料庫。

  • SYSTEM and SYSAUX tablespaces for every container

    CDBs與非CDBs的主要物理區別在於SYSTEM和SYSAUX中的資料檔案。非cdb只有一個系統表空間和一個SYSAUX表空間。相比之下,CDB根、每個應用程式根和CDB中的每個PDB都有自己的系統和SYSAUX表空間。每個容器還具有自己的一組字典表,用於描述駐留在容器中的物件。

  • Zero or more user-created tablespaces

    在典型的用例中,每個PDB都有自己的一組非系統表空間。這些表空間包含PDB中使用者定義模式和物件的資料。

    在PDB中,管理永久和臨時表空間的方式與在非cdb中管理它們的方式相同。您還可以通過在CREATE PLUGGABLE DATABASE或ALTER PLUGGABLE DATABASE語句中使用storage子句來限制資料檔案用於PDB的儲存量。

    PDB中資料字典的儲存使其具有可移植性。您可以從CDB中拔出PDB,並將其插入到另一個CDB。

  • A set of temp files for every container

    對於CDB根存在一個預設的臨時表空間,對於每個應用程式根、應用程式PDB和PDB都存在一個表空間.

Example 2-21 CDB in Local Undo Mode

這個例子展示了具有兩個pdb (hrpdb和salespdb)的CDB物理儲存體系結構的各個方面。在本例中,資料庫使用本地撤消模式,因此在CDB根目錄、hrpdb和salespdb中都有撤消資料檔案。

Figure 2-11 Physical Architecture of a CDB in Local Undo Mode

See Also: