この記事ではCDB/PDBで共有されるものについて解説します。
CDB/PDB構成について
マルチテナント構成はCDBというデータベース全体を管理する領域とPDBという業務データを格納する領域から構成されます。
1つのCDBに対して複数のPDBを構築することもできます。
マルチテナント構成ではCDBとPDBで共有されるものと共有されないものがあります。
共有されるものについては複数のPDBを構築した場合はPDB間でも共有されます。
CDBとPDBで共有されるもの
以下のものはCDBとPDBで共有されます。
・CPU/メモリなどのリソース
マルチテナント構成ではCPUやメモリを共有することによって、効率的にリソースを使用することを目指しています。
複数のPDBを構築する場合はリソースを奪い合うことにもなるので注意が必要です。
・共通ユーザ
CDBとPDBで共通でログインできるユーザを共通ユーザといいます。
デフォルトで作成されるsysやsystemは共通ユーザになります。
新規で共通ユーザを作成することもでき、その場合はユーザ名の頭に「C##」をつけることで共通ユーザとして認識されます。
・バックグラウンドプロセス
インスタンス自体が共有されるのでバックグラウンドプロセスも共有されます。
・REDOログファイル、アーカイブREDOログファイル
REDOログの管理もCDB単位で行われます。
・制御ファイル/SPFILE
CDB単位で管理されます。
・UNDO表領域(共有UNDOモード)
UNDO表領域はCDB内で共有するかPDBごとに固有に保持するかを選択できます。
UNDO表領域を共有する場合はUNDOモードを共有UNDOモードに設定します。
・アラートログ
CDB単位でアラートログは生成されます。
・初期化パラメータ(一部除く)
初期化パラメータは一部のPDBごとに設定可能なものを除き、CDBで管理されます。
CDBとPDBで共有されないもの
以下のものはCDB/PDBで固有に設定ができます。
・個別ユーザ
各CDB/PDBごとにユーザを作成できます。
・UNDO表領域(ローカルUNDOモード)
UNDOモードをローカルUNDOモードに設定した場合、各CDB/PDBごとにUNDO表領域を管理します。
・永続表領域
SYSTEM表領域などの永続表領域は各CDB/PDBごとに作成されます。
・TEMP表領域
TEMP表領域は各CDB/PDBごとに作成されます。
・一部の初期化パラメータ
「undo_tablespace」などの初期化パラメータはPDBごとに固有に設定が可能です。
PDB固有に設定した初期化パラメータはディクショナリに格納されます。