この記事では、CDBとPDBの管理方法についてまとめて解説します。
CDBとPDBへの接続
CDBとPDBの接続について解説します。
コンテナへの接続
非CDBにおいてデータベースを使用するには、まずデータベースに接続します。

CDBルートには、非CDBと同様にローカル接続およびリモート接続が可能ですが、PDBにはリモート接続のみ可能な点に注意が必要です。
CDBルートへの接続
CDBの管理を実行するには、CDBルートに接続します。CDBルートへの接続方式には、ローカル接続とリモート接続を使用できます。
CDBルートにローカル接続およびリモート接続する方法は、非CDBと同様です。環境変数ORACLR_SIDにインスタンスのSIDを設定するとローカル接続が可能になります。
CDBを起動すると、CDBのデータベース名と同名のデータベースサービスがリスナーに動的サービス登録されるため、そのデータベースサービス名に対応する接続識別子を指定するとリモート接続が可能です。
CDBルートに接続することをCDBに接続すると呼ぶこともあります。
PDBへの接続
PDBに格納したデータの管理およびPDBの管理を実行する場合は、PDBに接続します。PDBへの接続方式には、リモート接続を使用できます。
PDBをオープンするとPDBメイト同名のデータベースサービスがリスナーに動的サービス登録されるため、そのデータベースサービス名に対応する接続識別子を指定するとリモート接続が可能です。
CDBとPDBの起動と停止
CDBとPDBの起動と停止について解説します。
CDBの起動
CDBを起動するには、SYSDBA権限をもつユーザーでCDBルートに接続してSTARTUPコマンドを実行します。従来のデータベースと同様の操作です。
デフォルトの設定では、CDBを起動してもCDB内の各PDBはクローズされたままであることに留意が必要です。
PDBのオープン
PDBを使用するには、PDBをオープンする必要があります。PDBをオープンにするには、「ALTER PLUGGABLE DATABASE OPEN文またはSQL*PlusのSTARTUPコマンドを実行します。
CDBとPDBのその他の管理
CDBとPDBのその他の管理要素について解説します。
初期化パラメータの管理
CDBでは従来と同様に初期化パラメータはSPFILEに格納されます。
SPFILEに格納されたパラメータの設定値はCDBに対して適用されます(継承モデル)。
なお、一部の初期化パラメータは、PDBで個別に設定してCDBの設定を上書きすることができます。言い換えると、一部の初期化パラメータは、CDBと個別のPDBで異なる設定ができます。
CDBおよびPDBのパフォーマンス
CDBとPDBのパフォーマンス管理について解説します。
AWRとADDM
パフォーマンス分析には、AWRおよびADDMが有効です。
CDBレベルとPDBレベルのAWR処理
CDBでは、CDBレベルとPDBレベルで、AWRのスナップショットの収集およびAWRのレポートの生成が可能です。
接続先コンテナでレベルと対象コンテナが決まります。
CDBレベルとPDBレベルのADDM分析
CDBでは、CDBレベルとPDBレベルでADDMの分析が可能になっています。PDBレベルのADDM分析はOracle 19cから可能になっています。
マルチテナント環境でのリソースマネージャ
Oracleリソースマネージャは、CPU、I/O量、プロセス数などといった、処理を実行するための「資源(リソース)」を分配する仕組みです。リソースマネージャを活用することで、リソースの割り当てを適切に行う制御が可能になります。
マルチテナント環境でのリソースマネージャの構成
非CDB環境のリソースマネージャは以下の3つの要素から構成されます。
| 構成要素 | 説明 |
| リソースプラン | 一連のリソースディレクティブの設定セット データベースに、あるリソースプランを設定すると、そのリソースプランに含まれるリソースディレクティブに対応するリソース制御が有効になる |
| リソースディレクティブ | リソース種別やリソース制御の内容ごとに多数存在する具体的なリソース制御を支持する要素。 単に「ディレクティブ」とも呼ばれることがある。 |
| リソースコンシューマグループ | リソース配分における対象となるユーザーまたはセッションを含める論理的なグループ。単に「コンシューマグループ」と呼ばれることもある。 |
CDBリソースプランで使用できるリソースディレクティブ
CDBリソースプランで使用できるディレクティブは以下の3つのみです。
- shares(共有)
sharesディレクティブは、CPUリソースとパラレル実行サーバーの分配を相対的な数値で指定します。
- utilization limit (CPUリソース制限)
utilization_limitディレクティブは、PDBで使用できるCPU使用率の上限です。この値の範囲は0から100までで、PDBのCPU使用率がutilization_limitに設定した値を超えないように制御されます。
- parallel_server_limit(パラレル実行サーバー制御)
parallel_server_limitはPDBが使用できるパラレル実行サーバーの割合の上限です。値の範囲は0から100までです。PDBに割り当てられたパラレル実行サーバーの割合がparallel_server_limitの設定値を超えた場合、発行したパラレル問い合わせは待機させられます。
CDBリソースプランによるPDBへのリソース割り当て
先に説明したCDBリソースプランのディレクティブによるPDBへのリソース割り当ての考え方は以下の通りです。
- shares の相対的な比に基づいてCPUリソースとパラレル実行サーバーがPDBに割り当てられる(分配)
- 他のPDBが割り当てられたリソースを使用していない場合は、その分を追加で使用可能。ただいs、utilization_limitおよびparallel_server_limitを超えて使用することはできない(上限)