Oracleのマルチテナントアーキテクチャとは、1つのデータベースインスタンス(CDB)の中で複数の独立したデータベース(PDB)を管理する仕組みです。
マルチテナント・アーキテクチャはOracle Database 12cから出てきた機能になり、次のLong Term ReleaseであるOracle Database 23cでは必須構成(従来型のデータベースはサポート対象外)になります。
以下の図のような形がマルチテナントアーキテクチャのイメージになります。

参考:https://blogs.oracle.com/oraclemaster/om-golddba-2019-seminar-1
PDB(プラガブルデータベース)とCDB(コンテナデータベース)
PDB(プラガブルデータベース)は、ユーザーデータや個別アプリケーションを配置する独立したデータベースです。プラガブル(Pluggable)は、電源のコンセントプラグのように、「プラグとして使用が可能な」データベースということです。
CDB(コンテナデータベース)は、すべての基盤となる全体のコンテナです。「コンテナ」と呼ばれる理由は、物流で使われる貿易用コンテナ(輸送用コンテナ)の仕組みにそっくりだからです。
マルチテナントアーキテクチャ
マルチテナントアーキテクチャは、複数のOracle Databaseを統合して管理するための技術で、Oracle 12c R1から実装された技術です。以下の引用のように例えてマルチテナントアーキテクチャは説明することができます。
マルチテント・アーキテクチャのCDB構成は「駅ビル」と思っていただくといいでしょう。
先ほど紹介した「商店街通りの各店舗」が「駅ビル」にテナントとして入ったと考えてください。
また駅ビルには、各店舗のテナントや共有リソースを管理するための管理ルームのようなところがあると思いますが、これがコンテナ・データベースでいうところの「CDBルート」と考えるとよいと思います。
https://blogs.oracle.com/oraclemaster/om-golddba-2019-seminar-1
構成を読み解くときは「処理する仕組み」と「データの入れ物」を分ける
前の図を技術用語に結び付けると、インスタンスはSGAやバックグラウンドプロセスなどの処理機構、CDBはルートとPDBを含むデータベースです。PDBを1つ追加するたびに、別のインスタンスを起動するわけではありません。通常の単一インスタンス構成では1つのインスタンスがCDBを扱い、Oracle RACでは複数インスタンスが同じCDBを扱います。
| コンテナ | 主な役割 | 設問での見分け方 |
|---|---|---|
| CDB$ROOT | CDB全体の管理とOracleが提供する共通の定義を保持 | CDBに必ず1つ。業務アプリケーションの表は通常PDBへ置く |
| PDB$SEED | 新しいPDBを作るためのテンプレート | CDBに必ず1つ。読取り専用で使用し、業務データを追加する場所ではない |
| 通常のPDB | アプリケーションのスキーマ・表・データを保持 | PDB単位で接続、開閉、複製、移動などを行う |
共有されるものと分かれるもの
制御ファイル、オンラインREDOログ、インスタンスのSPFILEなどはCDB側の構成です。一方、各PDBはSYSTEM・SYSAUXなどの表領域とデータファイルを持ちます。ローカルUNDOモードではPDBごとにUNDOも持ちます。PDBが同じCDB内にあるからといって、業務表やデータファイルをすべて共有するわけではありません。
利用者にはPDBが独立したデータベースのように見えますが、CPUやメモリーなどを共有するため、負荷の大きいPDBが他のPDBに影響する可能性があります。リソース制御は、この共有による影響を調整する仕組みです。論理的な分離と物理資源の共有を両方理解しておくと、管理・可用性・性能の問題を整理しやすくなります。
公式ドキュメント:マルチテナント・アーキテクチャの概要(Oracle Database 19c)。

