株式会社コーソル

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

技術ブログ

PDBで実行できない操作とNONCDB_COMPATIBLEパラメータ

PDBの特性上、実行できないコマンドがいくつかあります。たとえば、 ALTER SYSTEM SWITCH LOGFILE; や ALTER SYSTEM ARCHIVE LOG CURRENT; は、 PDBに接続した状態では実行できず、実行するとエラー 「ORA-65040: プラガブル・データベース内からの操作は許可されていません」 が発生します。

SQL> ALTER SESSION SET CONTAINER=PDB1;

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

SQL> SHOW CON_NAME

CON_NAME
------------------------------
PDB1

SQL> ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE
*
行1でエラーが発生しました。:
ORA-65040: プラガブル・データベース内からの操作は許可されていません

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER SYSTEM ARCHIVE LOG CURRENT
*
行1でエラーが発生しました。:
ORA-65040: プラガブル・データベース内からの操作は許可されていません

REDOの管理はCDBレベルで行われることから、ある意味、これは自然な制約ですが、 何らかの理由で、従来のデータベースと同様にPDBでもこれらのコマンドが実行できると嬉しい場合もあるでしょう。 この場合は NONCDB_COMPATIBLE初期化パラメータをtrueに設定します(要再起動)。

SQL> ALTER SYSTEM SET NONCDB_COMPATIBLE=true scope=spfile;

システムが変更されました。

SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area  626327552 bytes
Fixed Size                  2291472 bytes
Variable Size             473958640 bytes
Database Buffers          146800640 bytes
Redo Buffers                3276800 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL> ALTER SESSION SET CONTAINER=PDB1;

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

SQL> SHOW CON_NAME

CON_NAME
------------------------------
PDB1
SQL> ALTER SYSTEM SWITCH LOGFILE;

システムが変更されました。
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

システムが変更されました。

すると、PDBでもALTER SYSTEM SWITCH LOGFILE; や ALTER SYSTEM ARCHIVE LOG CURRENT; が実行できるようになります。

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

カテゴリー

アーカイブ