データ・ポンプ・トランスポータブル表領域

この方法は、オンプレミス・プラットフォームがリトル・エンディアンで、オンプレミス・データベースとOracle Cloud Infrastructure Databaseサービスのデータベースのデータベース・キャラクタ・セットに互換性がある場合にのみ使用できます。

トランスポータブル表領域の方法では、実際のデータすべてを含むデータファイルが格納先に単純にコピーされるため、同じデータに対して従来のエクスポート/インポートを行うよりも通常ははるかに高速です。Data Pumpを使用して、表領域オブジェクトのメタデータのみを新しいデータベースに転送します。

Data Pumpトランスポータブル表領域の方法を使用して、オンプレミス・ソース・データベースをデータベース・サービスのデータベース・デプロイメントに移行するには、次のタスクを実行します:

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

  2. オンプレミス・データベース・ホストで、トランスポータブル表領域エクスポートを実行するためにData Pump Exportを起動します。

  3. セキュア・コピー・ユーティリティを使用して、Data Pump Exportのダンプ・ファイルと表領域データファイルを、データベース・サービスのコンピュート・ノードに転送します。

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

  5. データベース・サービスのコンピュート・ノードで、表領域をインポートするためにデータベースを準備します。

  6. データベース・サービスのコンピュート・ノードで、Data Pump Importを起動し、データベースに接続します。

  7. データベース・サービスのデータベースの表領域をREAD WRITEモードに設定します。

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

Data Pumpトランスポータブル表領域: 例

この例では、オンプレミスのOracleデータベースからデータベース・サービスのデータベースに表領域を移行するために必要なタスクをステップごとに説明します。

この例では、FSDATAおよびFSINDEX表領域の移行を実行します。

この例では、オンプレミス・データベースは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. DBA_DATA_FILESを問い合せて、FSDATAおよびFSINDEX表領域に属するデータファイルの名前を確認します。これらのファイルもエクスポート出力にリストされます。

      SQL> SELECT file_name FROM dba_data_files
        2  WHERE tablespace_name = 'FSDATA';
      
      FILE_NAME
      -----------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/fsdata01.dbf
      
      SQL> SELECT file_name FROM dba_data_files 
        2  WHERE tablespace_name = 'FSINDEX';
      
      FILE_NAME
      -----------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/fsindex01.dbf
    5. オンプレミス・データベース・ホストで、転送するすべての表領域(トランスポータブル・セット)をREAD ONLYモードに設定します。

      SQL> ALTER TABLESPACE fsindex READ ONLY;
      Tablespace altered.
      SQL> ALTER TABLESPACE fsdata READ ONLY;
      Tablespace altered.
    6. 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. セキュア・コピー・ユーティリティを使用して、Data Pump Exportのダンプ・ファイルと表領域データファイルを、データベース・サービスのコンピュート・ノードに転送します。

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

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

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

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

      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 \/u01/app/oracle/oradata/orcl/fsdata01.dbf \
      oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL
      
      $ scp -i private_key_file \/u01/app/oracle/oradata/orcl/fsindex01.dbf \
      oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL
  4. オンプレミスの表領域を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を終了します。

  5. データベース・サービスのコンピュート・ノードで、表領域をインポートするためにデータベースを準備します。

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

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

      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;
  6. データベース・サービスのコンピュート・ノードで、Data Pump Importを起動し、データベースに接続します。

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

    impdp system DIRECTORY=dp_from_onprem \
    TRANSPORT_DATAFILES='/u02/app/oracle/oradata/ORCL/fsdata01.dbf', \
    '/u02/app/oracle/oradata/ORCL/fsindex01.dbf'
  7. データベース・サービスのデータベースの表領域を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を終了します。

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