データ・ポンプ・トランスポータブル表領域
この方法は、オンプレミス・プラットフォームがリトル・エンディアンで、オンプレミス・データベースとOracle Cloud Infrastructure Databaseサービスのデータベースのデータベース・キャラクタ・セットに互換性がある場合にのみ使用できます。
トランスポータブル表領域の方法では、実際のデータすべてを含むデータファイルが格納先に単純にコピーされるため、同じデータに対して従来のエクスポート/インポートを行うよりも通常ははるかに高速です。Data Pumpを使用して、表領域オブジェクトのメタデータのみを新しいデータベースに転送します。
Data Pumpトランスポータブル表領域の方法を使用して、オンプレミス・ソース・データベースをデータベース・サービスのデータベース・デプロイメントに移行するには、次のタスクを実行します:
-
オンプレミス・データベース・ホストで、Data Pumpトランスポータブル表領域エクスポート用にデータベースを準備します。
-
オンプレミス・データベース・ホストで、トランスポータブル表領域エクスポートを実行するためにData Pump Exportを起動します。
-
セキュア・コピー・ユーティリティを使用して、Data Pump Exportのダンプ・ファイルと表領域データファイルを、データベース・サービスのコンピュート・ノードに転送します。
-
オンプレミスの表領域を
READ WRITE
に戻します。 -
データベース・サービスのコンピュート・ノードで、表領域をインポートするためにデータベースを準備します。
-
データベース・サービスのコンピュート・ノードで、Data Pump Importを起動し、データベースに接続します。
-
データベース・サービスのデータベースの表領域を
READ WRITE
モードに設定します。 -
データが正常にインポートされたことを確認したら、ダンプ・ファイルを削除できます。
Data Pumpトランスポータブル表領域: 例
この例では、オンプレミスのOracleデータベースからデータベース・サービスのデータベースに表領域を移行するために必要なタスクをステップごとに説明します。
この例では、FSDATA
およびFSINDEX
表領域の移行を実行します。
この例では、オンプレミス・データベースは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を問い合せて、
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を終了します。
-
-
オンプレミス・データベース・ホストで、トランスポータブル表領域エクスポートを実行するためにData Pump Exportを起動します。
オンプレミス・データベース・ホストで、Data Pump Exportを起動し、オンプレミス・データベースに接続します。
TRANSPORT_TABLESPACES
オプションを使用して、オンプレミス表領域をエクスポートします。プロンプトが表示されたら、SYSTEM
ユーザーのパスワードを指定します。expdp system TRANSPORT_TABLESPACES=fsdata,fsindex TRANSPORT_FULL_CHECK=YES DIRECTORY=dp_for_cloud
-
セキュア・コピー・ユーティリティを使用して、Data Pump Exportのダンプ・ファイルと表領域データファイルを、データベース・サービスのコンピュート・ノードに転送します。
この例では、ダンプ・ファイルは
/u01
ディレクトリにコピーされます。転送されるファイルのサイズに基づいて適切なロケーションを選択します。-
データベース・サービスのコンピュート・ノードで、ダンプ・ファイルのディレクトリを作成します。
mkdir /u01/app/oracle/admin/ORCL/dpdump/from_onprem
-
scp
ユーティリティを使用してファイルをコピーする前に、データベース・サービスのコンピュート・ノードへのアクセスを提供するSSH秘密キーがオンプレミス・ホストで使用可能であることを確認してください。 -
オンプレミス・データベース・ホストで、
scp
ユーティリティを使用して、ダンプ・ファイルとトランスポータブル・セットのすべてのデータファイルをデータベース・サービスのコンピュート・ノードに転送します。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を終了します。
-
-
データベース・サービスのコンピュート・ノードで、表領域をインポートするためにデータベースを準備します。
-
データベース・サービスのコンピュート・ノードで、SQL*Plusを起動し、
SYSTEM
ユーザーとしてデータベースにログインします。 -
データベース・サービスのデータベースにディレクトリ・オブジェクトを作成します。
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;
-
-
データベース・サービスのコンピュート・ノードで、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'
-
データベース・サービスのデータベースの表領域を
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
ファイルを削除できます。