この方法は、オンプレミス・プラットフォームがリトル・エンディアンで、オンプレミス・データベースとOracle Database Cloud Serviceデータベースのデータベース・キャラクタ・セットに互換性がある場合にのみ使用できます。
トランスポータブル表領域方法は一般に、実際のデータがすべて含まれるデータ・ファイルが単純にコピー先の場所にコピーされるため、同じデータの従来のエクスポート/インポートよりもずっと高速です。 データ・ポンプを使用して表領域オブジェクトのメタデータのみを新しいデータベースに転送します。
データ・ポンプ・トランスポータブル表領域方法を使用して、オンプレミスのソース・データベースをOracle Database Cloud Serviceデータベース・デプロイメントに移行するには、次のタスクを実行します。
オンプレミス・データベース・ホストで、データ・ポンプのトランスポータブル表領域エクスポート用にデータベースを準備します。
オンプレミス・データベース・ホストで、データ・ポンプ・エクスポートを起動してトランスポータブル表領域エクスポートを実行します。
セキュア・コピー・ユーティリティを使用して、データ・ポンプ・エクスポートのダンプ・ファイルおよび表領域データファイルをDatabase Cloud Serviceの計算ノードに転送します。
オンプレミス表領域をREAD WRITE
に戻します。
Database Cloud Serviceの計算ノードで、表領域インポート用にデータベースを準備します。
Database Cloud Service計算ノードでData Pump Importを起動し、データベースに接続します。
Database Cloud Serviceデータベースの表領域をREAD WRITE
モードに設定します。
データが正常にインポートされたことを確認したら、ダンプ・ファイルを削除できます。
この例では、オンプレミスOracle Databaseの表領域をOracle Database Cloud Serviceデータベースに移行するために必要なタスクを順を追って示します。
この例では、FSDATA
およびFSINDEX
の各表領域の移行を実行します。
この例では、オンプレミス・データベースは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を問い合せて、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
オンプレミス・データベース・ホストで、転送するすべての表領域(トランスポータブル・セット)をREAD ONLY
モードに設定します。
SQL> ALTER TABLESPACE fsindex READ ONLY; Tablespace altered. SQL> ALTER TABLESPACE fsdata READ ONLY; Tablespace altered.
SQL*Plusを終了します。
オンプレミス・データベース・ホストで、データ・ポンプ・エクスポートを起動してトランスポータブル表領域エクスポートを実行します。
オンプレミス・データベース・ホストで、データ・ポンプ・エクスポートを起動し、オンプレミス・データベースに接続します。 TRANSPORT_TABLESPACES
オプションを使用して、オンプレミス表領域をエクスポートします。 要求されたら、SYSTEM
ユーザーのパスワードを指定します。
$ expdp system TRANSPORT_TABLESPACES=fsdata,fsindex TRANSPORT_FULL_CHECK=YES DIRECTORY=dp_for_cloud
セキュア・コピー・ユーティリティを使用して、データ・ポンプ・エクスポートのダンプ・ファイルおよび表領域データファイルをDatabase Cloud Serviceの計算ノードに転送します。
この例では、ダンプ・ファイルは/u01
ディレクトリにコピーされます。 転送するファイルのサイズに基づいて適切な場所を選択します。
Database Cloud Serviceの計算ノードで、ダンプ・ファイル用のディレクトリを作成します。
$ mkdir /u01/app/oracle/admin/ORCL/dpdump/from_onprem
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@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
オンプレミス表領域をREAD WRITE
に戻します。
SQL*Plusを起動し、SYSTEM
ユーザーとしてログインします。
FSDATA
およびFSINDEX
の各表領域をREAD WRITE
モードに戻します。
SQL> ALTER TABLESPACE fsdata READ WRITE; Tablespace altered. SQL> ALTER TABLESPACE fsindex READ WRITE; Tablespace altered.
SQL*Plusを終了します。
Database Cloud Serviceの計算ノードで、表領域インポート用にデータベースを準備します。
Database Cloud Service計算ノードでSQL*Plusを起動し、SYSTEM
ユーザーとしてデータベースにログインします。
ディレクトリ・オブジェクトをDatabase Cloud Serviceデータベースに作成します。
SQL> CREATE DIRECTORY dp_from_onprem AS '/u01/app/oracle/admin/ORCL/dpdump/from_onprem';
インポートされるオブジェクトの所有者がデータベースに存在しない場合は、インポートを実行する前に作成します。 トランスポータブル表領域モードのインポートでは、ユーザーは作成されません。
SQL> CREATE USER fsowner 2 PROFILE default 3 IDENTIFIED BY fspass 4 TEMPORARY TABLESPACE temp 5 ACCOUNT UNLOCK;
Database Cloud Service計算ノードで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'
Database Cloud Serviceデータベースの表領域をREAD WRITE
モードに設定します。
SQL*Plusを起動し、SYSTEM
ユーザーとしてログインします。
FSDATA
およびFSINDEX
の各表領域をREAD WRITE
モードに設定します。
SQL> ALTER TABLESPACE fsdata READ WRITE; Tablespace altered. SQL> ALTER TABLESPACE fsindex READ WRITE; Tablespace altered.
SQL*Plusを終了します。
データが正常にインポートされたことを確認したら、expdat.dmp
ダンプ・ファイルを削除できます。