この記事ではPDB名の変更について解説します。
PDB名を変更する方法
マルチテナント環境ではPDB名を変更することができます。
PDB名の変更はALTER PLUGGABLE DATABASEを使用して行うことができます。
PDBに接続し下記を実行します。
ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO <新しいPDB名>;
PDB名を変更する際には変更するPDBをRESTRICTEDモードに変更する必要があります。
PDBがオープンしている場合は一度クローズしてRESTRICTEDモードに変更します。
PDB名の変更例
「PDB1」のPDB名を「PDB2」に変更します。
まずはPDBの状態を確認します。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 FREEPDB1 READ WRITE NO
4 PDB1 READ WRITE NO
PDB1がREAD WRITEでオープンしており、RESTRICTEDがNOになっていることが確認できます。
PDB1をRESTRICTEDモードに変更します。
SQL> ALTER PLUGGABLE DATABASE PDB1 CLOSE IMMEDIATE;
Pluggable database altered.
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN RESTRICTED;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 FREEPDB1 READ WRITE NO
4 PDB1 READ WRITE YES
PDB1がRESTRICTEDモードに変更されました。
PDB1に接続し、PDB名を変更します。
SQL> alter session set container=pdb1;
Session altered.
SQL> ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO PDB2;
Pluggable database altered.
SQL> show con_name
CON_NAME
------------------------------
PDB2
RESTRICTEDモードを解除するために再度PDBをクローズして起動します。
SQL> ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
Pluggable database altered.
SQL> ALTER PLUGGABLE DATABASE OPEN;
Pluggable database altered.
これにてPDB名の変更は完了になります。
tnsnames.oraのサービス名は変更されないので手動で変更する必要があります。
また、ディレクトリ名なども変更されないので注意が必要です。