コンテナデータベースとは
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