この方法は、ソース・データベースのリリース・バージョンが11.2.0.3以上で、オンプレミス・データベースとOracle Database Cloud Serviceデータベースのデータベース・キャラクタ・セットに互換性がある場合にのみ使用できます。
データ・ポンプのフル・トランスポータブル方法を使用すると、オンプレミス・ホストからOracle Database Cloud Serviceデータベース・デプロイメントのデータベースにデータベース全体をコピーできます。
データ・ポンプのフル・トランスポータブル方法を使用して、オンプレミスのOracle Database 11gデータベースをDatabase Cloud Serviceデータベース・デプロイメントのOracle Database 12cデータベースに移行するには、次のタスクを実行します。
オンプレミス・データベース・ホストで、ユーザー定義の表領域をREAD ONLY
モードにして、データ・ポンプのフル・トランスポータブル・エクスポート用にデータベースを準備します。
オンプレミス・データベース・ホストで、データ・ポンプ・エクスポートを起動してフル・トランスポータブル・エクスポートを実行します。
セキュア・コピー・ユーティリティを使用して、ユーザー定義の表領域すべてについてデータ・ポンプ・エクスポートのダンプ・ファイルおよびデータファイルをDatabase Cloud Serviceの計算ノードに転送します。
オンプレミス表領域をREAD WRITE
に戻します。
Database Cloud Serviceの計算ノードで、表領域インポート用にデータベースを準備します。
Database Cloud Service計算ノードでData Pump Importを起動し、データベースに接続します。
データが正常にインポートされたことを確認したら、ダンプ・ファイルを削除できます。
この例では、Oracle Database 11g データベースをOracle Database Cloud Service 12cデータベースに移行するために必要なタスクを順を追って示します。
この例では、ソース・データベースはLinuxホスト上に存在します。
ソース・データベース・ホストで、データ・ポンプ・フル・トランスポータブルのエクスポート用のデータベースを準備します。
ソース・データベースのホストで、オペレーティング・システム内にソース・エクスポートに使用するディレクトリを作成します。
$ 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を終了します。
ソース・データベース・ホストで、データ・ポンプ・エクスポートを起動し、フル・トランスポータブルのエクスポートを実行します。 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
セキュア・コピー・ユーティリティを使用して、ユーザー定義の表領域すべてについてデータ・ポンプ・エクスポートのダンプ・ファイルおよびデータファイルをDatabase Cloud Serviceの計算ノードに転送します。
この例では、ダンプ・ファイルは/u01
ディレクトリにコピーされます。 転送するファイルのサイズに基づいて適切な場所を選択します。
Database Cloud Serviceの計算ノードで、ダンプ・ファイル用のディレクトリを作成します。
$ mkdir /u01/app/oracle/admin/ORCL/dpdump/from_source
scp
ユーティリティを使用してファイルをコピーする前に、Database Cloud Service計算ノードにアクセスできるようにするSSH秘密鍵がソース・ホストで使用できることを確認します。
ソース・データベースのホストで、scp
ユーティリティを使用して、トランスポータブル・セットのダンプ・ファイルおよびすべてのデータファイルをDatabase Cloud Serviceの計算ノードに転送します。
$ 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を終了します。
Database Cloud Serviceの計算ノードで、表領域インポート用にPDBを準備します。
Database Cloud Service計算ノードでSQL*Plusを起動し、SYSTEM
ユーザーとしてPDBにログインします。
PDB内にディレクトリ・オブジェクトを作成します。
SQL> CREATE DIRECTORY dp_from_source AS '/u01/app/oracle/admin/ORCL/dpdump/from_source';
Database Cloud Serviceの計算ノードで、データ・ポンプ・インポートを起動し、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
ダンプ・ファイルを削除できます。