データ・ポンプのフル・トランスポータブル
この方法は、ソース・データベースのリリース・バージョンが11.2.0.3以上で、オンプレミス・データベースとOracle Cloud Infrastructure Databaseサービスのデータベースのキャラクタ・セットに互換性がある場合にのみ使用できます。
Data Pump完全トランスポータブル方法を使用すると、データベース全体をオンプレミス・ホストからデータベース・サービス・データベース・デプロイメントのデータベースにコピーできます。
Data Pump完全トランスポータブル方法を使用して、Oracle Database 11gオンプレミス・データベースを、データベース・サービスのデータベース・デプロイメント上のOracle Database 12cデータベースに移行するには、次のタスクを実行します:
-
オンプレミス・データベース・ホストで、ユーザー定義表領域を
READ ONLY
モードにすることで、Data Pump完全トランスポータブル・エクスポート用にデータベースを準備します。 -
オンプレミス・データベース・ホストで、完全トランスポータブル・エクスポートを実行するためにData Pump Exportを起動します。
-
セキュア・コピー・ユーティリティを使用して、Data Pump Exportのダンプ・ファイルとユーザー定義表領域のすべてのデータファイルを、データベース・サービスのコンピュート・ノードに転送します。
-
オンプレミスの表領域を
READ WRITE
に戻します。 -
データベース・サービスのコンピュート・ノードで、表領域をインポートするためにデータベースを準備します。
-
データベース・サービスのコンピュート・ノードで、Data Pump Importを起動し、データベースに接続します。
-
データが正常にインポートされたことを確認したら、ダンプ・ファイルを削除できます。
Data Pump完全トランスポータブル: 例
この例では、Oracle Database 11g データベースをデータベース・サービスの12cデータベースに移行するために必要なタスクをステップごとに説明します。
この例では、ソース・データベースはLinuxホスト上にあります。
-
ソース・データベース・ホストで、Data Pump完全トランスポータブル・エクスポート用にデータベースを準備します。
-
ソース・データベース・ホストで、ソースのエクスポートに使用するディレクトリをオペレーティング・システムに作成します。
$ mkdir /u01/app/oracle/admin/orcl/dpdump/for_cloud
-
ソース・データベース・ホストで、SQL*Plusを起動し、ソース・データベースに
SYSTEM
ユーザーとしてログインします。$ sqlplus system Enter password: <enter the password for the SYSTEM user>
-
ソース・データベース内に、オペレーティング・システム・ディレクトリを参照するディレクトリ・オブジェクトを作成します。
SQL> CREATE DIRECTORY dp_for_cloud AS '/u01/app/oracle/admin/orcl/dpdump/for_cloud';
-
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>
-
ソース・データベース・ホストで、転送するすべての表領域(トランスポータブル・セット)を
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>
-
SQL*Plusを終了します。
-
-
ソース・データベース・ホストで、完全トランスポータブル・エクスポートを実行するためにData Pump Exportを起動します。
FULL=y
およびTRANSPORTABLE=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
-
セキュア・コピー・ユーティリティを使用して、Data Pump Exportのダンプ・ファイルとユーザー定義表領域のすべてのデータファイルを、データベース・サービスのコンピュート・ノードに転送します。
この例では、ダンプ・ファイルは
/u01
ディレクトリにコピーされます。転送されるファイルのサイズに基づいて適切なロケーションを選択します。-
データベース・サービスのコンピュート・ノードで、ダンプ・ファイルのディレクトリを作成します。
$ mkdir /u01/app/oracle/admin/ORCL/dpdump/from_source
-
scp
ユーティリティを使用してファイルをコピーする前に、データベース・サービスのコンピュート・ノードへのアクセスを提供するSSH秘密キーがソース・ホストで使用可能であることを確認してください。 -
ソース・データベース・ホストで、
scp
ユーティリティを使用して、ダンプ・ファイルとトランスポータブル・セットのすべてのデータファイルをデータベース・サービスのコンピュート・ノードに転送します。$ 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
-
-
ソース表領域を
READ WRITE
に戻します。-
SQL*Plusを起動し、
SYSTEM
ユーザーとしてログインします。 -
ユーザー定義表領域を
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.
-
SQL*Plusを終了します。
-
-
データベース・サービスのコンピュート・ノードで、表領域をインポートするためにPDBを準備します。
-
データベース・サービスのコンピュート・ノードで、SQL*Plusを起動し、
SYSTEM
ユーザーとしてPDBにログインします。 -
PDBにディレクトリ・オブジェクトを作成します。
SQL> CREATE DIRECTORY dp_from_source AS '/u01/app/oracle/admin/ORCL/dpdump/from_source';
-
-
データベース・サービスのコンピュート・ノードで、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'
-
データが正常にインポートされたことを確認したら、
expdat.dmp
ファイルを削除できます。