Oracle Cloud Infrastructureドキュメント

データ・ポンプ・フル・トランスポータブル

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

Data Pumpのフル・トランスポータブル・メソッドを使用して、オンプレミス・ホストからデータベース全体をDatabaseサービス・データベース・デプロイメント上のデータベースにコピーできます。

Data Pumpのフル・トランスポータブル・メソッドを使用して、Oracle Database 11gのオンプレミス・データベースをDatabaseサービス・データベース・デプロイメントのOracle Database 12cデータベースに移行するには、次の作業を行います:

  1. オンプレミス・データベース・ホストで、ユーザー定義の表領域をREAD ONLYモードに置くことによって、Data Pumpのフル・トランスポータブル・エクスポート用のデータベースを準備します。

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

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

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

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

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

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

データ・ポンプ・フル・トランスポータブル: 例

この例では、Oracle Database 11gデータベースをDatabaseサービス12cデータベースに移行するために必要なタスクのデモを段階的に示します。

この例では、ソース・データベースは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を問い合せて、ユーザー定義の表領域に属する表領域およびデータ・ファイルの名前を判別します。 これらのファイルは、エクスポート出力にもリストされます。

      SQL> SELECT tablespace_name, file_name FROM dba_data_files; 
      TABLESPACE_NAME  FILE_NAME
      ---------------  --------------------------------------------------
      USERS            /u01/app/oracle/oradata/orcl/users01.dbf
      UNDOTBS1         /u01/app/oracle/oradata/orcl/undotbs01.dbf
      SYSAUX           /u01/app/oracle/oradata/orcl/sysaux01.dbf
      SYSTEM           /u01/app/oracle/oradata/orcl/system01.dbf
      EXAMPLE          /u01/app/oracle/oradata/orcl/example01.dbf
      FSDATA           /u01/app/oracle/oradata/orcl/fsdata01.dbf
      FSINDEX          /u01/app/oracle/oradata/orcl/fsindex01.dbf
      SQL> 
    5. ソース・データベース・ホストで、トランスポートされるすべての表領域(トランスポータブル・セット)をREAD ONLYモードに設定します。

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

  2. ソース・データベース・ホストで、Data Pump Exportを呼び出してフル・トランスポータブル・エクスポートを実行します。 FULL=yTRANSPORTABLE=alwaysを指定します。 これはOracle Database 11gデータベースで完全転送可能なのはOracle Database 12c機能ですので、VERSION=12を指定してください。 プロンプトが表示されたら、SYSTEMユーザーのパスワードを入力します。

    $ expdp system FULL=y TRANSPORTABLE=always VERSION=12 DUMPFILE=expdat.dmp DIRECTORY=dp_for_cloud
  3. セキュア・コピー・ユーティリティを使用して、Data Pump Exportダンプ・ファイルおよびすべてのユーザー定義の表領域のデータ・ファイルをDatabaseサービス・コンピュート・ノードに転送します。

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

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

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

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

      $ scp -i private_key_file \
      /u01/app/oracle/admin/orcl/dpdump/for_cloud/expdat.dmp \

      oracle@compute_node_IP_address:/u01/app/oracle/admin/ORCL/dpdump/from_source
      $ scp -i private_key_file \
      /u01/app/oracle/oradata/orcl/example01.dbf \
      oracle@compute_node_IP_address:/u02/app/oracle/oradata/ORCL/PDB2
      $ scp -i private_key_file \
      /u01/app/oracle/oradata/orcl/fsdata01.dbf \

      oracle@compute_node_IP_address:/u02/app/oracle/oradata/ORCL/PDB2
      $ scp -i private_key_file \
      /u01/app/oracle/oradata/orcl/fsindex01.dbf \

      oracle@compute_node_IP_address:/u02/app/oracle/oradata/ORCL/PDB2
      $ scp -i private_key_file \
      /u01/app/oracle/oradata/orcl/users01.dbf \
      oracle@compute_node_IP_address:/u02/app/oracle/oradata/ORCL/PDB2
  4. ソース表領域をREAD WRITEに戻します。

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

    2. ユーザー定義の表領域をREAD WRITEモードに戻します。

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

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

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

    2. PDBにディレクトリ・オブジェクトを作成します。

      SQL> CREATE DIRECTORY dp_from_source AS '/u01/app/oracle/admin/ORCL/dpdump/from_source';
  6. Databaseサービスのコンピュート・ノードで、Data Pump Importを呼び出してPDBに接続します。

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

    $ impdp system@PDB2 FULL=y DIRECTORY=dp_from_source \
    TRANSPORT_DATAFILES='/u02/app/oracle/oradata/ORCL/PDB2/example01.dbf',\
    '/u02/app/oracle/oradata/ORCL/PDB2/fsdata01.dbf',\'/u02/app/oracle/oradata/ORCL/PDB2/fsindex01.dbf,'\'/u02/app/oracle/oradata/ORCL/PDB2/users01.dbf'
  7. データが正常にインポートされたことを確認したら、expdat.dmpダンプ・ファイルを削除できます。