Oracle Cloud Infrastructureドキュメント

RMANによるデータ・ポンプによるトランスポータブル表領域の変換

このメソッドは、オンプレミス・データベースのデータベース・キャラクタ・セットとDatabaseサービス・データベースが互換性がある場合にのみ使用できます。

このメソッドは、データ・ポンプ・トランスポータブル表領域メソッドと似ていますが、RMANのCONVERTコマンドを追加することで、異なるエンディアンのプラットフォーム間のトランスポートを可能にします。 V$TRANSPORTABLE_PLATFORMを問合せして、オンプレミス・データベース・プラットフォームがクロス・プラットフォーム表領域のトランスポートをサポートしているかどうかを判別し、プラットフォームのエンディアン形式を判別します。 Databaseサービス・プラットフォームはリトル・エンディアン形式です。

オンプレミスOracleデータベースからRMANを使用してDatabaseサービスのデータベース・デプロイに表領域を移行するには、次の作業を行います:

  1. オンプレミス・データベース・ホストで、Data Pumpのトランスポータブル表領域エクスポート用のデータベースを準備します。

  2. オンプレミス・データベース・ホストで、Data Pump Exportを呼び出して、トランスポータブル表領域のエクスポートを実行します。

  3. オンプレミス・データベース・ホストで、RMANを起動し、CONVERT TABLESPACEコマンドを使用して表領域データファイルをDatabaseサービス・プラットフォーム形式に変換します。 CONVERTコマンドの詳細については、「Oracle Databaseバックアップおよびリカバリのリファレンス」を参照してください。

  4. 安全なコピー・ユーティリティを使用して、Data Pump Exportダンプ・ファイルと変換された表領域データファイルをDatabaseサービス・コンピュート・ノードに転送します。

  5. オンプレミス表領域をREAD WRITEに戻します。

  6. Databaseサービスのコンピュート・ノードで、表領域インポート用のデータベースを準備します。

  7. Databaseサービスのコンピュート・ノードで、Data Pump Importを呼び出してデータベースに接続します。

  8. Databaseサービスのコンピュート・ノードで、データベース内の表領域をREAD WRITEモードに設定します。

  9. データが正常にインポートされたことを確認したら、ダンプ・ファイルを削除できます。

RMANによるデータ・ポンプによるトランスポータブル表領域の変換: 例

この例では、オンプレミスのOracleデータベース内の表領域をDatabaseサービス・データベースに移行するために必要なタスクのデモを段階的に示します。

この例では、オンプレミス・データベースはLinuxホスト上にあります。

  1. オンプレミス・データベース・ホストで、Data Pumpのトランスポータブル表領域エクスポート用のデータベースを準備します。

    1. オンプレミス・データベース・ホストで、オンプレミス・エクスポートに使用するディレクトリをオペレーティング・システムに作成します。

      mkdir /u01/app/oracle/admin/orcl/dpdump/for_cloud
    2. オンプレミス・データベース・ホストで、SQL*Plusを呼び出して、オンプレミス・データベースにSYSTEMユーザーとしてログインします。

      sqlplus system 
      Enter password: <enter the password for the SYSTEM user>
    3. オンプレミス・データベースにディレクトリ・オブジェクトを作成して、オペレーティング・システム・ディレクトリを参照します。

      SQL> CREATE DIRECTORY dp_for_cloud AS '/u01/app/oracle/admin/orcl/dpdump/for_cloud';
    4. オンプレミス・データベース・ホストで、トランスポートされるすべての表領域(トランスポータブル・セット)をREAD ONLYモードに設定します。

      SQL> ALTER TABLESPACE fsindex READ ONLY;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsdata READ ONLY;
      Tablespace altered.
    5. SQL*Plusを終了します

  2. オンプレミス・データベース・ホストで、Data Pump Exportを呼び出して、トランスポータブル表領域のエクスポートを実行します。

    オンプレミス・データベース・ホストで、Data Pump Exportを起動し、オンプレミス・データベースに接続します。 TRANSPORT_TABLESPACESオプションを使用してオンプレミス表領域をエクスポートします。 プロンプトが表示されたら、SYSTEMユーザーのパスワードを入力します。

    expdp system TRANSPORT_TABLESPACES=fsdata,fsindex TRANSPORT_FULL_CHECK=YES DIRECTORY=dp_for_cloud
  3. オンプレミス・データベース・ホストで、RMANを起動し、CONVERT TABLESPACEコマンドを使用して表領域データファイルをDatabaseサービス・プラットフォーム形式に変換します。

    1. RMANを起動します。

      rman target /
    2. RMANのCONVERT TABLESPACEコマンドを実行してデータファイルを変換し、変換されたファイルをオンプレミス・データベース・ホストの一時的なロケーションに格納します。

      RMAN> CONVERT TABLESPACE fsdata, fsindex
         2> TO PLATFORM 'Linux x86 64-bit'
         3> FORMAT '/tmp/%U ';
      …
      input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/fsdata01.dbf
      converted datafile=/tmp/data_D-ORCL_I-1410251631_TS-FSDATA_FNO-6_0aqc9un3
      …
      input datafile file number=00007 name=/u01/app/oracle/oradata/orcl/fsindex01.dbf
      converted datafile=/tmp/data_D-ORCL_I-1410251631_TS-FSINDEX_FNO-7_0bqc9un6
      …
    3. 変換されたファイルの名前に注意してください。 これらのファイルは、次のステップでDatabaseサービスのコンピュート・ノードにコピーされます。

    4. RMANを終了します。

  4. 安全なコピー・ユーティリティを使用して、Data Pump Exportダンプ・ファイルと変換された表領域データファイルをDatabaseサービス・コンピュート・ノードに転送します。

    この例では、ダンプ・ファイルは/u01ディレクトリにコピーされます。 転送されるファイルのサイズに基づいて適切なロケーションを選択します。

    1. Databaseサービス・コンピュート・ノードで、ダンプ・ファイル用のディレクトリを作成します。

      mkdir /u01/app/oracle/admin/ORCL/dpdump/from_onprem
    2. scpコマンドを使用してファイルをコピーする前に、Databaseサービスのコンピュート・ノードへのアクセスを提供するSSH秘密キーが、オンプレミスのhost.で使用可能であることを確認してください

    3. オンプレミス・データベース・ホストで、scpユーティリティを使用して、転送可能なセットのダンプ・ファイルとすべてのデータファイルをDatabaseサービス・コンピュート・ノードに転送します。

      scp -i private_key_file \
      /u01/app/oracle/admin/orcl/dpdump/for_cloud/expdat.dmp \
      oracle@IP_address_DBaaS_VM:/u01/app/oracle/admin/ORCL/dpdump/from_onprem $ scp -i private_key_file \
      /tmp/data_D-ORCL_I-1410251631_TS-FSDATA_FNO-6_0aqc9un3 \
      oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL/fsdata01.dbf $ scp -i private_key_file \
      /tmp/data_D-ORCL_I-1410251631_TS-FSINDEX_FNO-7_0bqc9un6 \
      oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL/fsindex01.dbf
  5. オンプレミス表領域をREAD WRITEに戻します。

    1. SQL*Plusを呼び出し、SYSTEMユーザーとしてログインします。

    2. FSDATAおよびFSINDEX表領域をREAD WRITEモードに戻します。

      SQL> ALTER TABLESPACE fsdata READ WRITE;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsindex READ WRITE;
      Tablespace altered.
    3. SQL*Plusを終了します

  6. Databaseサービスのコンピュート・ノードで、表領域インポート用のデータベースを準備します。

    1. Databaseサービスのコンピュート・ノードで、SQL*Plusを呼び出し、SYSTEMユーザーとしてデータベースにログインします。

    2. Databaseサービス・データベースにディレクトリ・オブジェクトを作成します。

      SQL> CREATE DIRECTORY dp_from_onprem AS '/u01/app/oracle/admin/ORCL/dpdump/from_onprem';
    3. インポートするオブジェクトの所有者がデータベースに存在しない場合は、インポートを実行する前に作成します。 転送可能な表領域モードのインポートでは、ユーザーは作成されません。

      SQL> CREATE USER fsowner
        2  PROFILE default
        3  IDENTIFIED BY fspass
        4  TEMPORARY TABLESPACE temp
        5  ACCOUNT UNLOCK;
  7. Databaseサービスのコンピュート・ノードで、Data Pump Importを呼び出してデータベースに接続します。

    TRANSPORT_DATAFILESオプションを使用して、Database Serviceデータベースにデータをインポート

    impdp system DIRECTORY=dp_from_onprem \
    TRANSPORT_DATAFILES='/u02/app/oracle/oradata/ORCL/fsdata01.dbf', \
    '/u02/app/oracle/oradata/ORCL/fsindex01.dbf'
  8. Databaseサービスのコンピュート・ノードで、データベース内の表領域をREAD WRITEモードに設定します。

    1. SQL*Plusを呼び出し、SYSTEMユーザーとしてログインします。

    2. FSDATAおよびFSINDEX表領域をREAD WRITEモードに設定します。

      SQL> ALTER TABLESPACE fsdata READ WRITE;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsindex READ WRITE;
      Tablespace altered.
    3. SQL*Plusを終了します

  9. データが正常にインポートされたことを確認したら、expdat.dmpダンプ・ファイルを削除できます。