マルチテナント・コンテナ・データベース(CDB)では、コンテナはスキーマ、オブジェクトおよび関連構造の集合です。プラガブル・データベース(PDB)は、ヒューマン・リソース・アプリケーションなどのアプリケーションのデータとコードを格納するユーザー作成のコンテナです。
ユーザーまたはアプリケーションの観点から見ると、PDBは論理的に独立したデータベースであるように見えます。オペレーティング・システムの観点では、CDBはデータベースです。
CDBごとに、次のコンテナがあります。
- Oracle提供のメタデータおよび共通ユーザー(そのCDBに属するすべてのコンテナで認識されるデータベース・ユーザー)を格納する、CDB$ROOTという1つのルート・コンテナ。ルートにはユーザー・データは格納されません。すべてのPDBはこのルートに属します。
- 1つのシードPDB(PDB$SEED)は、CDBが新しいPDBを作成するために使用できるシステム提供のテンプレートです。シードPDBは変更できません。
- 0以上のユーザー作成PDB。最初にCDBを作成するときにPDBは存在しません。複数のPDBを一度に複数のCDBに接続できますが、PDBを複数のCDBに接続することはできません。各PDBは、同じCDBに接続されている他のPDBからの完全な分離に存在します。ユーザーは、シードPDBまたはルート・コンテナではなく、PDBのみと対話します。
- 0個以上のアプリケーション・コンテナ。これは、アプリケーションのデータとメタデータを格納するCDB内のPDBのオプションのコレクションです。アプリケーション・コンテナにはCDBのように複数のアプリケーションPDBが含まれ、これらのPDBはメタデータおよびデータを共有できます。
物理レベルでは、コンテナは物理データファイルで構成されます。各コンテナには1つ以上のデータファイルがあります。論理レベルで、データベースは表領域と呼ばれる論理構造でデータファイルをまたいで割り当てます。
CDBでは、操作中に複数のシステム・ファイルも使用されます。制御ファイルおよびREDOオンライン・ログ・ファイルはCDBに存在し、すべてのPDBおよびアプリケーション・コンテナで共有されます。他のシステム・ファイルはCDBの外部に存在します。
ノート: 非CDBはOracle Database 21cでサポートが終了しました。つまり、Oracle Universal InstallerおよびDatabase Configuration Assistant (DBCA)では非CDBのOracle Databaseインスタンスを作成できなくなりました。