Oracle Database 12cからマルチテナントアーキテクチャ機能が追加されました。
今回はCDB(コンテナデータベース)からPDB(プラガブルデータベース)へ接続する方法を紹介します。
CDBにログイン
CDBへのログイン方法は、従来の方法と同様ですのでSYSDBA権限でログインします。
show con_name コマンドで現在接続しているデータベースを確認することができます。
[oracle@ol77 ~]$ sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
CDB$ROOT は CDB に接続している状態です。
PDB一覧の確認
show pdbs コマンドで、PDB一覧を確認できます。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 HOEGEPDB MOUNTED
PDB$SEED はデフォルトで作成されるPDBテンプレートですので、上記では HOEGEPDB というPDBが存在していることが確認できます。
PDBへ接続
以下のSQLで対象のPDBへ接続することができます。
alter session set container = <con_name>;
SQL> alter session set container = HOEGEPDB;
セッションが変更されました。
SQL> show con_name
CON_NAME
------------------------------
HOEGEPDB
show con_name で対象のPDBへ接続できていることが確認できました。
PDBのオープン
PDBがオープンされていなければ startup open コマンドでオープンしてあげます。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 HOEGEPDB MOUNTED NO
SQL> startup open;
プラガブル・データベースがオープンされました。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 HOEGEPDB READ WRITE NO