株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

SQL*Plusのマルチテナント・アーキテクチャ向け拡張

Oracle Databaseエンジニアみんな大好きSQL*Plusで、いくつかのコマンドが マルチテナント・アーキテクチャ向けに拡張されています。

なお、以下の記述における内部的に実行しているコマンドは、SQLトレースを使用して確認しました。

SHOWコマンド

SHOWコマンドにいくつか機能が追加されています。

  • SHOW CON_ID : 現在接続中のコンテナのコンテナIDが表示されます。sys_context('USERENV', 'CON_ID'))の値です。
  • SHOW CON_NAME: 現在接続中のコンテナの名称が表示されます。sys_context('USERENV', 'CON_NAME')) の値です。
  • SHOW PDBS:PDBの一覧が表示されます。V$PDBSの値です。
SQL> SHOW CON_ID

CON_ID
------------------------------
3
SQL> SHOW CON_NAME

CON_NAME
------------------------------
PDB1
SQL> alter session set container=cdb$root;

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

SQL> SHOW CON_ID

CON_ID
------------------------------
1
SQL> SHOW CON_NAME

CON_NAME
------------------------------
CDB$ROOT
SQL> SHOW PDBS

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED

startupコマンド

OPENされていない(対応するインスタンスが起動していない)CDBでstartupコマンドを実行すると、従来型データベースと同様にインスタンスが起動して、データベース(=CDB)がOPENされます。

CDBがOPENされた状態でPDBに接続して、startupコマンドを実行すると、PDBがOPENされます。内部的には ALTER PLUGGABLE DATABASE OPEN; が実行されます。 また、CDBに接続した状態でPDBを起動するコマンドとして、startup pluggable database も導入されています。

shutdownコマンド

OPENされている(対応するインスタンスが起動している)CDBでshutdownコマンドを実行すると、従来型データベースと同様にインスタンスが停止して、データベース(=CDB)がCLOSEされます。

CDBがOPENされた状態でPDBに接続して、shutdownコマンドを実行すると、PDBがCLOSEされます。内部的には ALTER PLUGGABLE DATABASE CLOSE; が実行されます。また、shutdown immediateを実行すると、ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;が実行されれます。

なお、shutdown transactional、shutdown abortは キーワードに対応した処理が実行されません。内部的にはそれぞれ ALTER PLUGGABLE DATABASE CLOSE; 、ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;が実行されます。

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ