Standard EditionのPDBをEnterprise Editionにプラグしたらどうなるのか

どうなるんだろうね?ということでやってみたメモ。結論、できそう。

使っているのはどちらも 19.19。

Standard Edition からPDBをアンプラグ

PDB名は「sepdb」。適当なディレクトリにアーカイブベースでアンプラグする。アンプラグしたら元のCDBからはdropしておく。

SQL> alter pluggable database sepdb close;

プラガブル・データベースが変更されました。

SQL> alter pluggable database sepdb unplug into '/home/oracle/sepdb/sepdb.pdb';

プラガブル・データベースが変更されました。

SQL> drop pluggable database sepdb including datafiles;

プラガブル・データベースが削除されました。

Enterprise Edition にPDBをプラグ

プラグ先のデータファイル格納ディレクトリを作成しておく。

$ mkdir /u01/app/oracle/oradata/EEDB/sepdb

アーカイブしたPDBをプラグして、OPENする。何事もなく、すんなりOPENできた。

SQL> create pluggable database sepdb using '/home/oracle/sepdb/sepdb.pdb'
  2  file_name_convert=('/home/oracle/sepdb/','/u01/app/oracle/oradata/EEDB/sepdb/');

プラガブル・データベースが作成されました。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 EEPDB                          READ WRITE NO
         4 SEPDB                          MOUNTED              ← 追加された
SQL> alter pluggable database sepdb open;

プラガブル・データベースが変更されました。

もともと入っていたデータも問題なく参照可能。

SQL> alter session set container=sepdb;

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

SQL> select * from testuser.testtab;

      COL1
----------
         1

WARNINGは出ているけれど…

表面上は問題なく動いているように見えるが、アラートログを見るとこんなメッセージが。

SEPDB(4):***************************************************************
SEPDB(4):WARNING: Pluggable Database SEPDB with pdb id - 4 is
SEPDB(4):         altered with errors or warnings. Please look into
SEPDB(4):         PDB_PLUG_IN_VIOLATIONS view for more details.
SEPDB(4):***************************************************************

PDB_PLUG_IN_VIOLATIONS を見てみると、いくつかWARNINGが出ている。

SQL> select name, cause, type, message, status from PDB_PLUG_IN_VIOLATIONS where name = 'SEPDB';

NAME   CAUSE                          TYPE      MESSAGE                                                                                              STATUS
------ ------------------------------ --------- ---------------------------------------------------------------------------------------------------- ---------
SEPDB  DB Release Edition             WARNING   CDB is Enterprise Edition (8), but PDB is not Enterprise Edition (4)                                 RESOLVED
SEPDB  OPTION                         WARNING   Database option APS mismatch: PDB installed version NULL. CDB installed version 19.0.0.0.0.          PENDING
SEPDB  OPTION                         WARNING   Database option DV mismatch: PDB installed version NULL. CDB installed version 19.0.0.0.0.           PENDING
SEPDB  OPTION                         WARNING   Database option OLS mismatch: PDB installed version NULL. CDB installed version 19.0.0.0.0.          PENDING
SEPDB  OPTION                         WARNING   Database option XOQ mismatch: PDB installed version NULL. CDB installed version 19.0.0.0.0.          PENDING

エディション違いというところもWARNINGにはなっているけれど、STATUSはRESOLVEDなのでおそらくそこは問題ない。内部でうまいこと変換して解決してくれていると推測。

オプションについてのWARNINGは、SEにはなかった機能がEEのCDBに存在するために出力されているのだろう。あくまでもWARNINGであってERRORではないし、対象の機能を使わないのであれば無視してよいと思われるが、確かなところはサポートに聞いてみたほうがいいのかもしれない。

コメント