この方法は、オンプレミス・データベースとOracle Database Cloud Serviceデータベースのデータベース・キャラクタ・セットに互換性がある場合にのみ使用できます。
この方法はデータ・ポンプ・トランスポータブル表領域方法と似ていますが、さらにRMAN CONVERT
コマンドによってエンディアンネスが異なるプラットフォーム間でのトランスポートが可能になります。 V$TRANSPORTABLE_PLATFORM
を問い合せて、オンプレミス・データベース・プラットフォームでクロスプラットフォームの表領域トランスポートがサポートされているかどうかを判別し、プラットフォームのエンディアン形式を確認します。 Oracle Database Cloud Serviceプラットフォームはリトル・エンディアン形式です。
RMANを使用して、表領域をオンプレミスのOracle DatabaseからDatabase Cloud Service上のデータベース・デプロイメントに移行するには、次のタスクを実行します。
オンプレミス・データベース・ホストで、データ・ポンプのトランスポータブル表領域エクスポート用にデータベースを準備します。
オンプレミス・データベース・ホストで、データ・ポンプ・エクスポートを起動してトランスポータブル表領域エクスポートを実行します。
オンプレミス・データベース・ホストで、RMANを起動し、CONVERT TABLESPACE
コマンドを使用して表領域データファイルをOracle Database Cloudプラットフォームの形式に変換します。 CONVERT
コマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
セキュア・コピー・ユーティリティを使用して、データ・ポンプ・エクスポートのダンプ・ファイルおよび変換された表領域データファイルを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データベースに移行するために必要なタスクを順を追って示します。
この例では、オンプレミス・データベースは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';
オンプレミス・データベース・ホストで、転送するすべての表領域(トランスポータブル・セット)を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
オンプレミス・データベース・ホストで、RMANを起動し、CONVERT TABLESPACE
コマンドを使用して表領域データファイルをOracle Database Cloudプラットフォームの形式に変換します。
RMANを起動します。
$ rman target /
RMAN CONVERT TABLESPACE
コマンドを実行してデータファイルを変換し、変換したファイルをオンプレミス・データベース・ホストの一時的な場所に格納します。
RMAN> CONVERT TABLESPACE fsdata, fsindex 2> TO PLATFORM 'Linux x86 64-bit' 3> FORMAT '/tmp/%U '; … input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/fsdata01.dbf converted datafile=/tmp/data_D-ORCL_I-1410251631_TS-FSDATA_FNO-6_0aqc9un3 … input datafile file number=00007 name=/u01/app/oracle/oradata/orcl/fsindex01.dbf converted datafile=/tmp/data_D-ORCL_I-1410251631_TS-FSINDEX_FNO-7_0bqc9un6 …
変換したファイルの名前を書き留めます。 次の手順で、これらのファイルをDatabase Cloud Serviceの計算ノードにコピーします。
RMANを終了します。
セキュア・コピー・ユーティリティを使用して、データ・ポンプ・エクスポートのダンプ・ファイルおよび変換された表領域データファイルを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 \ /tmp/data_D-ORCL_I-1410251631_TS-FSDATA_FNO-6_0aqc9un3 \ oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL/fsdata01.dbf $ scp -i private_key_file \ /tmp/data_D-ORCL_I-1410251631_TS-FSINDEX_FNO-7_0bqc9un6 \ oracle@IP_address_DBaaS_VM:/u02/app/oracle/oradata/ORCL/fsindex01.dbf
オンプレミス表領域を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
オプションを使用して、データをDBaaSデータベースにインポートします
$ 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
ダンプ・ファイルを削除できます。