MIGRATE PLUGGABLE DATABASE

MIGRATE PLUGGABLE DATABASEコマンドを使用すると、プラガブル・データベース(PDB)を1つのマルチテナント・コンテナ・データベース(CDB)から同じホスト上の別のCDBに移行できます。あるプライマリCDBから別のプライマリCDBにPDB移行するか、スタンバイCDBからプライマリCDBにPDBをフェイルオーバーできます。

Oracle AI Database 26aiを導入すると、MIGRATE PLUGGABLE DATABASEコマンドで、Data Guard Brokerの構成内のプライマリCDBから別のブローカの構成内の別のプライマリCDBにプラガブル・データベースを移動するときに、スタンバイ・データファイルを再利用できます。スタンバイ・データ・ファイルを再利用するには、次のことを確認する必要があります。
  • ソース構成および宛先構成にあるすべてのデータベースで、OMFおよびASMが使用されている必要があります。
  • ソース・スタンバイCDBで、宛先スタンバイCDBと同じASMディスク・グループが共有されている必要があります。

書式

MIGRATE PLUGGABLE DATABASE [VERIFY][IMMEDIATE] <pdb_name>
TO CONTAINER <dest_cdb_name>
USING XML_description_file
[CONNECT AS { /@<dest_cdb_connect_identifer>  | <dest_cdb_user>/<dest_cdb_pass>@<dest_cdb_connect_identifer>} ]
[ SECRET secret KEYSTORE IDENTIFIED BY ( EXTERNAL STORE | <wallet_password>) ][STANDBY FILES { /@<asm_instance_connect_identifer>  | sysasm_user/sysasm_pass@<asm_instance_connect_identifer>} ]
[SOURCE STANDBY <source_standby_cdb_name>
[DESTINATION STANDBY <dest_standby_cdb_name>
[TIMEOUT timeout]
[KEYFILE <key_file>]
[ SOURCE KEYSTORE IDENTIFIED BY ( EXTERNAL STORE | <source_wallet_password>) ];

前提条件

MIGRATE PLUGGABLE DATABASEコマンドには次の前提条件があります。

  • ソースCDBと同じファイル・パスでPDBデータ・ファイルにアクセスできるようにして、宛先CDBが作成および起動されている必要があります。

  • ソースCDBと宛先CDBは、それぞれ別々のData Guard Broker構成に含まれている必要があります。

  • ソースCDBはプライマリ・データベースまたはフィジカル・スタンバイ・データベースのどちらでもかまいません。

  • ソースPDBで透過的データ暗号化(TDE)が使用されている場合、ソースPDBに関連付けられている暗号化キーも移行する必要があります。データベース・ルートに接続し、ADMINISTER KEY MANAGEMENTコマンドを使用してマスター暗号化キーをエクスポートします。このコマンドで使用される句は、PDBモード(分離モードまたは統一モード)およびキーストアのタイプ(ソフトウェアベースのキーストアまたはパスワード・キーストア)によって異なります。

    エクスポートされたキーを含むファイルは、セキュア・ファイル・コピー(SCP)またはOracle Automatic Storage Management Cluster File System (Oracle ACFS)を使用して、宛先CDBからアクセスできる必要があります。

  • ソースCDBがフィジカル・スタンバイ・データベースの場合:

    • ソースCDBと宛先CDBで同じOracleバージョンおよびパッチが実行されている必要があります。

    • ソースCDBと宛先CDBのCOMPATIBLE初期化パラメータの設定は同じである必要があります。

    • 移行対象のPDBがそのプライマリCDB上でクローズされている必要があります。

    • フェイルオーバーを実行します。

      PDBフェイルオーバーによってデータが消失する可能性がある場合は、IMMEDIATEオプションを使用して、フェイルオーバーの実行を明示的に選択する必要があります。

  • ソースCDBがプライマリ・データベースの場合

    • 宛先CDBで古いバージョンのOracleは実行できません。

    • 宛先CDBでは、COMPATIBLE初期化パラメータの設定をソースCDBよりも低い値に設定できません。

  • PDBのサービスを停止して、移行対象のソース・データベースのOracle Clusterwareリポジトリから削除する必要があります。これは、ソース・データベースのData Guard Broker構成内のすべてのデータベースに対して実行する必要があります。

  • 宛先CDBがオープンしている必要があります。

  • このコマンドを実行するユーザーには、ソースCDBと宛先CDBの両方に対するSYSDBA権限が必要です。

  • ソース・スタンバイ・データベース・ファイルの再利用が必要な場合:
    • ソース・スタンバイ・データベース・ファイルを含むASMインスタンスへの接続識別子を指定するには、STANDBY FILES句を使用する必要があります
    • ソースおよび宛先のCDBスタンバイ・データベースのパラメータDB_CREATE_FILE_DESTを、同じASMディスク・グループ名に設定する必要があります。
    • 宛先CDBスタンバイ・データベースのパラメータDB_FILE_NAME_CONVERTはnullである必要があります。
    • パラメータSTANDBY_FILE_MANAGEMENTは、ソース・スタンバイ・データベースでAUTOである必要があります。

コマンド・パラメータ

pdb_name
移行対象のPDBの名前。
dest_cdb_name
移行対象のPDBを受け入れるCDBの一意のデータベース名。
XML_description_file
移行対象のPDBの説明が含まれているXMLファイル。このファイルは、MIGRATE PLUGGABLE DATABASEコマンドで実行するSQL文によって自動的に作成されます。
dest_cdb_user
宛先CDBへのSYSDBAアクセス権を持つユーザーのユーザー名。
dest_cdb_pass
dest_cdb_userに指定されているユーザー名に関連付けられたパスワード。
dest_cdb_connect_identifier
宛先CDBへの接続に使用するOracle Net接続識別子。
secret
ソースPDBのエクスポートされた暗号化キーを含むエクスポート・ファイルの暗号化に使用されたパスワード。このパスワードは、PDB暗号化キーのエクスポート時にADMINISTER KEY MANAGEMENTコマンドの一部として指定されます。
wallet_password
暗号化キーを含むキーストアのパスワード。これは、ソースPDBがパスワード・キーストアを使用して暗号化された場合に必要です。
asm_instance_connect_identifer
ソース・スタンバイ・データベース・ファイルがあるASMインスタンスへの接続識別子。
sysasm_user
ASMインスタンスに対するSYSASM権限を持つユーザー。
sysasm_pass
sysasm_userのパスワード。
source_standby_cdb_name
移行ソースCDBのスタンバイ・データベースのDB_UNIUE_NAME
dest_standby_cdb_name
移行先CDBのスタンバイ・データベースのDB_UNIUE_NAME
timeout
移行中に宛先スタンバイ・データベースがデータ・ファイルを取得するまでのタイムアウト値(秒)。
key_file
TDEマスター・キーをエクスポートするためのキー・ファイルの場所。
source_wallet_password
移行するPDBのソースCDB/PDBのキーストア・パスワード。

使用上のノート

  • デフォルトで、このコマンドをPDBフェイルオーバーで使用する場合、データを消失する可能性があると、フェイルオーバーの試行は拒否されます。IMMEDIATEオプションを使用して、このデフォルトの動作を上書きできます。

  • ソース・データベースがプライマリ・データベースの場合、IMMEDIATEオプションは無視されます。

  • VERIFYオプションは、PDBを正常に移行できるかどうかを判断するための事前チェックを実行します。

  • 接続識別子が指定されている場合、宛先CDBでのユーザー認証にはデータベース資格証明が使用されます。

  • オペレーティング・システム資格証明は、宛先CDBでのユーザー認証には使用できません。接続識別子を指定する必要があります。スラッシュ(/)はサポートされません。

  • スラッシュ(/)を使用して接続識別子が指定されている場合(たとえば、/@boston)、資格証明はウォレットから取得されます。

  • 接続文字列を指定する場合は、次のオプションを使用できます。

    • /@dest_cdb_connect_identifier (資格証明はウォレットからフェッチされる)

    • dest_cdb_user/dest_cdb_pass@dest_cdb_connect_identifier (データベース資格証明を使用する)

  • パスワードがコマンドライン上に表示されないようにするには、接続識別子とユーザー名のみを指定します。次に、パスワードの入力を求められます。ユーザー名と接続識別子のみを入力する場合は、次のオプションがサポートされています。

    • dest_cdb_user@dest_cdb_connect_identifier (データベース資格証明を使用する)

    • dest_cdb_user@dest_cdb_connect_identifier (データベース資格証明を使用する)

  • コマンドラインから接続文字列をすべて省略すると、ユーザー名とパスワードを入力するように要求されます。次のオプションがサポートされています。

    • /@dest_cdb_connect_identifier (パスワードを求めるプロンプトは表示されず、資格証明はウォレットからフェッチされる)

    • dest_cdb_user@dest_cdb_connect_identifier (データベース資格証明を使用する)

    • dest_cdb_user@dest_cdb_connect_identifier (データベース資格証明を使用する)

  • sysasm_passを省略した場合は、sysasm_userのパスワードを求めるプロンプトが表示されます。
  • SOURCE STANDBY句で指定するデータベースは、フィジカル・スタンバイ・データベースである必要があります。移行ソースのプライマリ・データベースのフィジカル・スタンバイが1つのみの場合、この句はオプションです
  • DESTINATION STANDBY句で指定するデータベースは、フィジカル・スタンバイ・データベースである必要があります。移行先プライマリ・データベースのフィジカル・スタンバイが1つのみの場合、この句はオプションです。
  • TIMEOUT句を指定しない場合、デフォルトの1800秒が使用されます。
  • TDEが有効な場合のスタンバイ・データベースからのフェイルオーバーの場合、TDEマスター・キーをエクスポートするためのキー・ファイルの場所を指定するKEYFILE句と、その後にソースCDBのキーストア・パスワードを指定するSOURCE KEYSTORE IDENTIFIED BY句が必要です。

コマンドの例

例1: プライマリCDBからのPDBの移行

DGMGRL> MIGRATE PLUGGABLE DATABASE REGION1 TO CONTAINER NORTH_SALES_NEW USING REGION1.xml 
CONNECT AS sys@NORTH_SALES_NEW;
Connected to "NORTH_SALES_NEW"
Connected.

Beginning migration of pluggable database REGION1.
Source multitenant container database is NORTH_SALES.
Destination multitenant container database is NORTH_SALES_NEW.

Closing pluggable database REGION1 on all instances of multitenant container database NORTH_SALES.
Unplugging pluggable database REGION1 from multitenant container database NORTH_SALES.
Pluggable database description will be written to REGION1.xml.
Dropping pluggable database REGION1 from multitenant container database NORTH_SALES.
Creating pluggable database REGION1 on multitenant container database NORTH_SALES_NEW.
Opening pluggable database REGION1 on all instances of multitenant container database NORTH_SALES_NEW.
Succeeded.

例2: フィジカル・スタンバイからのPDBのフェイルオーバー

DGMGRL> MIGRATE PLUGGABLE DATABASE REGION1 TO CONTAINER SOUTH_SALES_NEW 
USING REGION1.xml CONNECT AS sys@SOUTH_SALES_NEW;
Connected to "SOUTH_SALES_NEW"
Connected.

Beginning migration of pluggable database REGION1.
Source multitenant container database is SOUTH_SALES.
Destination multitenant container database is SOUTH_SALES_NEW.

Continuing with migration of pluggable database REGION1 to multitenant container database SOUTH_SALES_NEW.
Stopping Redo Apply services on source multitenant container database SOUTH_SALES.
Succeeded.
Opening database SOUTH_SALES.
Opening pluggable database REGION1 on source multitenant container database SOUTH_SALES to prepare for migration.
Pluggable database description will be written to REGION1.xml.
Closing pluggable database REGION1 on all instances of multitenant container database SOUTH_SALES.
Disabling media recovery for pluggable database REGION1.
Closing database SOUTH_SALES.
Restarting redo apply services on source multitenant container database SOUTH_SALES.
Succeeded.
Creating pluggable database REGION1 on multitenant container database SOUTH_SALES_NEW.
Opening pluggable database REGION1 on all instances of multitenant container database SOUTH_SALES_NEW.
Unplugging pluggable database REGION1 from multitenant container database NORTH_SALES.
Dropping pluggable database REGION1 from multitenant container database NORTH_SALES.
Succeeded.

例3: Data Guard構成のプライマリ・データベースにPDBを接続する場合にソース・スタンバイ・データベース・ファイルを再利用

MIGRATE PLUGGABLE DATABASE REGION1 TO CONTAINER SOUTH_SALES_NEW USING REGION1.xml STANDBY FILES sysasm@asm_tns SOURCE STANDBY SOUTH_SALES_STANDBY DESTINATION STANDBY SOUTH_SALES_NEW_STANDBY ; 
Connected.

Beginning migration of pluggable database REGION1.
Source multitenant container database is SOUTH_SALES.
Destination multitenant container database is SOUTH_SALES_NEW.

Connecting to "inst11".
Connected as SYSASM.
Stopping Redo Apply services on multitenant container database SOUTH_SALES_NEW_STANDBY.
The guaranteed restore point "…" was created for multitenant container database "SOUTH_SALES_NEW_STANDBY".
Restarting redo apply services on multitenant container database SOUTH_SALES_NEW_STANDBY.
Closing pluggable database REGION1 on all instances of multitenant container database SOUTH_SALES.
Unplugging pluggable database REGION1 from multitenant container database SOUTH_SALES.
Pluggable database description will be written to ...
Dropping pluggable database REGION1 from multitenant container database SOUTH_SALES.
Waiting for the pluggable database REGION1 to be dropped from standby multitenant container database SOUTH_SALES_STANDBY.
Creating pluggable database REGION1 on multitenant container database SOUTH_SALES_NEW.
Checking whether standby multitenant container database SOUTH_SALES_NEW_STANDBY has added all data files for pluggable database REGION1.
Opening pluggable database REGION1 on all instances of multitenant container database SOUTH_SALES_NEW.
The guaranteed restore point "…" was dropped for multitenant container database "SOUTH_SALES_NEW_STANDBY".
Migration of pluggable database REGION1 completed.
Succeeded.

例4: Data Guard構成のプライマリ・データベースにPDBを接続する場合にTDEを有効にしてソース・スタンバイ・データベース・ファイルを再利用

DGMGRL> MIGRATE PLUGGABLE DATABASE REGION1 TO CONTAINER SOUTH_SALES_NEW 
USING REGION1.xml CONNECT AS sys@SOUTH_SALES_NEW;
Connected to "SOUTH_SALES_NEW"
Connected.

Beginning migration of pluggable database REGION1.
Source multitenant container database is SOUTH_SALES.
Destination multitenant container database is SOUTH_SALES_NEW.

Continuing with migration of pluggable database REGION1 to multitenant container database SOUTH_SALES_NEW.
Stopping Redo Apply services on source multitenant container database SOUTH_SALES.
Succeeded.
Opening database SOUTH_SALES.
Opening pluggable database REGION1 on source multitenant container database SOUTH_SALES to prepare for migration.
Pluggable database description will be written to REGION1.xml.
Closing pluggable database REGION1 on all instances of multitenant container database SOUTH_SALES.
Disabling media recovery for pluggable database REGION1.
Closing database SOUTH_SALES.
Restarting redo apply services on source multitenant container database SOUTH_SALES.
Succeeded.
Creating pluggable database REGION1 on multitenant container database SOUTH_SALES_NEW.
Opening pluggable database REGION1 on all instances of multitenant container database SOUTH_SALES_NEW.
Unplugging pluggable database REGION1 from multitenant container database NORTH_SALES.
Dropping pluggable database REGION1 from multitenant container database NORTH_SALES.
Succeeded.

例5: ソースPDBの移行前検証の実行

DGMGRL> MIGRATE PLUGGABLE DATABASE REGION10 TO CONTAINER SOUTH_SALES_NEW USING .* CONNECT AS sys/knl_test7@tkdg4_tns SECRET "s123" KEYSTORE IDENTIFIED BY "Welcome4c" STANDBY FILES sys/knl_test7@inst11 ; 
Connected.
Master keys of the pluggable database REGION10 to need to be migrated.
Keystore of pluggable database REGION10 is open.

Beginning migration of pluggable database REGION10.
Source multitenant container database is SOUTH_SALES.
Destination multitenant container database is SOUTH_SALES_NEW.

Connecting to "inst11".
Connected as SYSASM.
Stopping Redo Apply services on multitenant container database SOUTH_SALES_NEW_STANDBY.
The guaranteed restore point "..." was created for multitenant container database "SOUTH_SALES_NEW_STANDBY".
Restarting redo apply services on multitenant container database SOUTH_SALES_NEW_STANDBY.
Closing pluggable database REGION10 on all instances of multitenant container database SOUTH_SALES.
Unplugging pluggable database REGION10 from multitenant container database SOUTH_SALES.
Pluggable database description will be written to ...
Dropping pluggable database REGION10 from multitenant container database SOUTH_SALES.
Waiting for the pluggable database REGION10 to be dropped from standby multitenant container database SOUTH_SALES_STANDBY.
Creating pluggable database REGION10 on multitenant container database SOUTH_SALES_NEW.
Checking whether standby multitenant container database SOUTH_SALES_NEW_STANDBY has added all data files for pluggable database REGION10.
Stopping Redo Apply services on multitenant container database SOUTH_SALES_NEW_STANDBY.
Opening pluggable database REGION10 on all instances of multitenant container database SOUTH_SALES_NEW.
The guaranteed restore point "..." was dropped for multitenant container database "SOUTH_SALES_NEW_STANDBY".
Please complete the following steps to finish the operation:
1. Copy keystore located in ... for migration destination primary database to ... for migration destination standby database.
2. Start DGMGRL, connect to multitenant container database SOUTH_SALES_NEW, and issue command "EDIT DATABASE SOUTH_SALES_NEW_STANDBY SET STATE=APPLY-ON".
3. If the clusterware is configured on multitenant container databases SOUTH_SALES_NEW or SOUTH_SALES_NEW_STANDBY, add all non-default services for the migrated pluggable database in cluster ready services.
Migration of pluggable database REGION10 completed.
Succeeded.