migrate_db

コマンドに入力として渡されたXMLファイルまたはJSONファイルに定義されているソースと宛先のマッピングを使用して、データベースの統合を実行するためにデプロイメント・プロシージャを発行します。ファイルには、次のどの移行方法を使用するかも示されています。

  • Data Guardのフィジカル・スタンバイ(最小停止時間)
  • RMANクローン
  • データ・ポンプ(完全またはスキーマ)のエクスポートおよびインポート(クロス・プラットフォーム)
  • 完全トランスポータブル・エクスポートおよびインポート(最小停止時間、クロス・プラットフォーム)
  • クロス・プラットフォーム増分バックアップ(最適化済、最小限の停止時間、クロスプラットフォーム)

ノート:

Oracleデータベース13.3.2.0.0以降でmigrate_dbを使用して移行を試行する前に、パッチ12.1.0.2.210119がデプロイされていることを確認してください。

書式

emcli migrate_db
      -file=<XML or JSON file path>
      [-exec_mode=<execution mode>]
      [-ignore_pre_req]

[ ]  indicates that the parameter is optional.

オプション

  • file

    ソースと宛先のデータベース・マッピングを含むXMLファイルまたはJSONファイルの絶対パス。

  • exec_mode

    移行方法がONLINE_DATAGUARDの場合のみ、次のように使用します。

    • FULL: 停止時間のユーザー制御なしで、同じジョブですべての移行ステップを実行します。たとえば、データベース・スタンバイ、RACへの変換およびスタンバイ・スイッチオーバーのステップを同じジョブで実行します。
    • PRE_DOWNTIME: データベースを停止させる必要のないすべてのステップを実行します。たとえば、データベース・スタンバイおよびRACへの変換のステップを同じジョブで実行します。

      このモードを使用する場合、現在のジョブが正常に完了した後で、同じ入力ファイルとexec_modeオプションのDOWNTIMEを使用して移行ジョブを再度実行する必要があります。

    • DOWNTIME: 停止時間を必要とするすべてのステップを実行します。たとえば、ジョブでスイッチオーバー・ステップを実行します。

      このモードを使用する前提として、PRE_DOWNTIME exec_modeオプションを指定したジョブですべての停止時間前のステップが正常に実行されている必要があります。

    exec_modeを指定しない場合、デフォルトでFULLになります。

  • ignore_pre_req

    XMLの前提条件検証をすべて無視します。

例1

次の例では、dgpredt-migrate.xmlファイルに指定されたマッピングに基づいて、データベース移行を実行するプロシージャをデプロイします。ジョブでは、データベースの停止時間を必要としないすべてのステップが実行されるData Guard移行方法を使用します。

emcli migrate_db 
      -file="/home/migrations/dgpredt-migrate.xml"
      -exec_mode="PRE_DOWNTIME"

例2

次の例では、dgdt-migrate.xmlファイルに指定されたマッピングに基づいて、データベース移行を実行するプロシージャをデプロイします。ジョブでは、データベースの停止時間を必要とするすべてのステップが実行されるData Guard移行方法を使用します。また、XMLの前提条件検証は行われません。

emcli migrate_db 
      -file="/home/migrations/dgdt-migrate.xml"
      -exec_mode="DOWNTIME"
      -ignore_pre_req

例3

次の例は、有効な移行XMLファイルを使用します。

ノート:

複数のデータベースを同じターゲットCDBに移行するときには、PDBごとのXMLファイルで個別のstorageDirectoryを渡す必要があります。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<moveDB type="ONLINE_TTS">
    <mapping>
        <source>
            <targetName>example.source.com</targetName>
            <targetType>oracle_database</targetType>        
            <sysdbaCreds>MY_SYSDBA</sysdbaCreds>
            <dbHostCreds>MY_HOST</dbHostCreds>
            <preScript>/prescript.sql</preScript>
            <workingDirectory>/duser/predb</workingDirectory>
            <phase>prepare</phase>
            <pdbName>ORCL18C_PDB1</pdbName>
            <pdbAdminCreds>MY_PDB_CREDS</pdbAdminCreds>
        </source>

        <destination>
            <targetName>example.destination.com</targetName>        
            <targetType>oracle_database</targetType>
            <sysdbaCreds>MY_SYS</sysdbaCreds>
            <dbHostCreds>MY_HOST</dbHostCreds>
            <postScript>/postscript.sql</postScript>
            <workingDirectory>/duser/postsql</workingDirectory>
            <storageDirectory>+DATA</storageDirectory>
            <storageType>ASM_STORAGE</storageType>
            <asmCreds>MY_ASMCREDS</asmCreds>
        </destination>
    </mapping>
</moveDB>