コンテナデータベースとは

Oracle12c マルチテナント環境には、コンテナという概念がある。
11g 以前の DB とは構成が異なるので、接続先をしっかりと意識することが必要。
接続先を確認する方法や、コンテナを切り替える方法を紹介する。

コンテナデータベースの構成

CDB$ROOT

コンテナ全体で使用するメタデータ情報を保持するルートコンテナ。

PDB$SEED

シードは、PDB の作成時に使用するテンプレート(読み取り専用)。

PDB

プラガブルデータベース。業務データを格納する通常のデータベース。

接続中のコンテナ表示と切替方法

ルートコンテナに接続

sqlplus / as sysdba

SQL> show con_name

CON_NAME
-------------------------
CDB$ROOT  → ルートコンテナに接続されている

プラガブルデータベース(PDB)に変更

SQL> alter session set container=PDB1;

セッションが変更されました。

SQL> show con_name

CON_NAME
-------------------------
PDB1  → PDB1に切り替わった

ルートコンテナ(CDB)に戻す

SQL> alter session set container=CDB$ROOT;

セッションが変更されました。

SQL> show con_name

CON_NAME
-------------------------
CDB$ROOT  → ルートコンテナに戻った

一旦 exit で抜けて再接続すれば、またルートコンテナに接続されるので、
コマンドを打つかどうかはお好みで。

PDBに直接接続する

直接 PDB へ接続したい場合は tnsnames.ora に接続定義し、リスナー経由で接続する。

sqlplus system/パスワード@PDB1

関連記事