Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

データベースリンクを経由した直接 Oracle Data Pump Import を使用して、オンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データベースリンクを経由した直接 Oracle Data Pump Import を使用して、オンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する

作成者: Rizwan Wangde (AWS)

多数のパターンでは、大規模な Oracle ワークロードを移行するのに推奨されるネイティブの Oracle ユーティリティである Oracle Data Pump を使用して、オンプレミスの Oracle データベースを Oracle 用 Amazon Relational Database Service (Amazon RDS) に移行します。これらのパターンには、通常、アプリケーションスキーマまたはテーブルをダンプファイルにエクスポートし、ダンプファイルを Amazon RDS for Oracle のデータベースディレクトリに転送し、ダンプファイルからアプリケーションスキーマとデータをインポートすることが含まれます。

この方法を使用すると、データのサイズや Amazon RDS インスタンスへのダンプファイルの転送にかかる時間によっては、移行に時間がかかる場合があります。さらに、ダンプファイルは Amazon RDS インスタンスの Amazon Elastic Block Store (Amazon EBS) ボリュームにあります。このボリュームは、データベースとダンプファイルを保存するのに十分な大きさでなければなりません。インポート後にダンプファイルが削除されると、空のスペースは取得できなくなるため、未使用のスペースについては引き続きお支払いいただきます。

このパターンは、データベースリンク上で Oracle Data Pump API (DBMS_DATAPUMP) を使用して Amazon RDS インスタンスに直接インポートを実行することで、こうした問題を軽減します。このパターンは、移行元のデータベースと移行先のデータベース間のエクスポートとインポートの同時パイプラインを開始します。このパターンでは、ダンプファイルが作成または保存されないため、ダンプファイル用の EBS ボリュームのサイズを設定する必要はありません。この方法では、未使用のディスク容量にかかる毎月のコストを節約できます。

前提条件

  • アクティブな Amazon Web Services (AWS) アカウント。

  • Amazon RDS インスタンスのネットワークインフラストラクチャを提供するために、少なくとも 2 つのアベイラビリティゾーンにまたがるプライベートサブネットで構成された仮想プライベートクラウド (VPC)。

  • オンプレミスデータセンターの Oracle データベース、または Amazon Elastic Compute Cloud (Amazon EC2) でセルフマネージドされた Oracle データベース。

  • 単一のアベイラビリティーゾーン内の既存の Amazon RDS for Oracle インスタンス。1 つのアベイラビリティゾーンを使用すると、移行中の書き込みパフォーマンスが向上します。マルチ AZ 配置は、カットオーバーの 24~48 時間前に有効化できます。

    このソリューションは、Amazon RDS Custom for Oracle をターゲットとして使用することもできます。

  • AWS Direct Connect (大規模なデータベースに推奨)。

  • Amazon RDS インスタンスからオンプレミスの Oracle データベースへのインバウンド接続を許可するように設定されたオンプレミスのネットワーク接続とファイアウォールルール。

制限

  • Amazon RDS for Oracle のデータベースサイズ制限は、2022 年 12 月時点で 64 テビバイト (TiB) です。

  • Amazon RDS for Oracle DB インスタンスの 1 つのファイルの最大サイズは 16 TiB です。これは、複数のテーブルスペースにテーブルを分散する必要がある可能性があるため、知っておくことが重要です。

製品バージョン

  • ソースデータベース: Oracle データベースバージョン 10g リリース 1 以降。

  • ターゲットデータベース: Amazon RDS でサポートされているバージョンとエディションの最新リストについては、AWS ドキュメントの「Amazon RDS for Oracle」を参照してください。

ソーステクノロジースタック

  • オンプレミスでもクラウドでも、セルフマネージド Oracle データベース

ターゲットテクノロジースタック

  • Amazon RDS for Oracle または Amazon RDS Custom for Oracle

ターゲットアーキテクチャ

以下の図は、シングル AZ 環境でオンプレミスの Oracle データベースから Amazon RDS for Oracle に移行するためのアーキテクチャを示しています。矢印の方向は、アーキテクチャ内のデータフローを示しています。この図には、どのコンポーネントが接続を開始しているかは示されていません。

オンプレミスの Oracle データベースのフルロード移行。
  1. Amazon RDS for Oracle インスタンスは、オンプレミスのソース Oracle データベースに接続し、データベースリンクを介して全負荷移行を実行します。

  2. AWS Database Migration Service (AWS DMS) はオンプレミスのソース Oracle データベースに接続し、変更データキャプチャ (CDC) を使用して継続的なレプリケーションを実行します。

  3. CDC の変更は Amazon RDS for Oracle データベースに適用されます。

AWS サービス

  • AWS Database Migration Service (AWS DMS) は、データストアを に移行する AWS クラウド か、クラウドとオンプレミスのセットアップの組み合わせ間で移行するのに役立ちます。このパターンでは CDC と [データ変更のみの複製] 設定を使用します。

  • AWS Direct Connect は、標準イーサネット光ファイバケーブルを介して内部ネットワークを AWS Direct Connect ロケーションにリンクします。この接続を使用すると、ネットワークパスでインターネットサービスプロバイダーをバイパス AWS のサービス しながら、仮想インターフェイスをパブリックに直接作成できます。

  • Amazon Relational Database Service は、AWS クラウドで Oracle リレーショナルデータベースをセットアップ、運用、スケーリングするのに役立ちます。

その他のツール

はオンプレミスネットワークと 間の専用プライベートネットワーク接続 AWS Direct Connect を使用しますが AWS、転送中のデータのセキュリティとデータ暗号化を強化するには、次のオプションを検討してください。

タスク説明必要なスキル

移行先のデータベースから移行元のデータベースへのネットワーク接続を設定します。

ターゲット Amazon RDS インスタンスからオンプレミスのソース Oracle データベースへの受信接続を許可するように、オンプレミスネットワークとファイアウォールを設定します。

ネットワーク管理者、セキュリティエンジニア

適切な権限を持つデータベースユーザーを作成します。

Oracle Data Pump を使用してソースとターゲット間でデータを移行する権限を持つオンプレミスソース Oracle データベースにデータベースユーザーを作成します。

GRANT CONNECT to <migration_user>; GRANT DATAPUMP_EXP_FULL_DATABASE to <migration_user>; GRANT SELECT ANY TABLE to <migration_user>;
DBA

CDC AWS DMS 移行用にオンプレミスのソースデータベースを準備します。

(オプション) Oracle Data Pump Full Load の完了後に、CDC AWS DMS 移行用にオンプレミスソースの Oracle データベースを準備します。

  1. Oracle Data Pump の移行中に FLASHBACK を管理するために必要な追加の権限を設定します。

    GRANT FLASHBACK ANY TABLE to <migration_user>; GRANT FLASHBACK ARCHIVE ADMINISTER to <migration_user>;
  2. のセルフマネージド Oracle ソースに必要なユーザーアカウント権限を設定するには AWS DMS、 AWS DMS ドキュメントを参照してください。

  3. を使用して CDC 用の Oracle セルフマネージド型ソースデータベースを準備するには AWS DMS、 AWS DMS ドキュメントを参照してください。

DBA

SQL Developer をインストールして設定します。

SQL Developer をインストールしてソースデータベースとターゲットデータベースに接続し、SQL クエリを実行するように設定します。

DBA、移行エンジニア

テーブルスペースを作成するスクリプトを生成します。

次の SQL クエリの例を使用して、ソースデータベースにスクリプトを生成します。

SELECT 'CREATE TABLESPACE ' tablespace_name ' DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE UNLIMITED;' from dba_tablespaces where tablespace_name not in ('SYSTEM', 'SYSAUX','TEMP','UNDOTBS1') order by 1;

スクリプトはターゲットデータベースに適用されます。

DBA

ユーザー、プロファイル、ロール、権限を作成するためのスクリプトを生成します。

データベースユーザー、プロファイル、ロール、権限を作成するスクリプトを生成するには、OracleSupport 文書「How to Extract DDL for User including Privileges and Roles Using dbms_metadata.get_ddl (Doc ID 2739952.1)」(Oracle アカウントが必要) にあるスクリプトを使用します。

スクリプトはターゲットデータベースに適用されます。

DBA

オンプレミスのソース Oracle データベースを準備する

タスク説明必要なスキル

移行先のデータベースから移行元のデータベースへのネットワーク接続を設定します。

ターゲット Amazon RDS インスタンスからオンプレミスのソース Oracle データベースへの受信接続を許可するように、オンプレミスネットワークとファイアウォールを設定します。

ネットワーク管理者、セキュリティエンジニア

適切な権限を持つデータベースユーザーを作成します。

Oracle Data Pump を使用してソースとターゲット間でデータを移行する権限を持つオンプレミスソース Oracle データベースにデータベースユーザーを作成します。

GRANT CONNECT to <migration_user>; GRANT DATAPUMP_EXP_FULL_DATABASE to <migration_user>; GRANT SELECT ANY TABLE to <migration_user>;
DBA

CDC AWS DMS 移行用にオンプレミスのソースデータベースを準備します。

(オプション) Oracle Data Pump Full Load の完了後に、CDC AWS DMS 移行用にオンプレミスソースの Oracle データベースを準備します。

  1. Oracle Data Pump の移行中に FLASHBACK を管理するために必要な追加の権限を設定します。

    GRANT FLASHBACK ANY TABLE to <migration_user>; GRANT FLASHBACK ARCHIVE ADMINISTER to <migration_user>;
  2. のセルフマネージド Oracle ソースに必要なユーザーアカウント権限を設定するには AWS DMS、 AWS DMS ドキュメントを参照してください。

  3. を使用して CDC 用の Oracle セルフマネージド型ソースデータベースを準備するには AWS DMS、 AWS DMS ドキュメントを参照してください。

DBA

SQL Developer をインストールして設定します。

SQL Developer をインストールしてソースデータベースとターゲットデータベースに接続し、SQL クエリを実行するように設定します。

DBA、移行エンジニア

テーブルスペースを作成するスクリプトを生成します。

次の SQL クエリの例を使用して、ソースデータベースにスクリプトを生成します。

SELECT 'CREATE TABLESPACE ' tablespace_name ' DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE UNLIMITED;' from dba_tablespaces where tablespace_name not in ('SYSTEM', 'SYSAUX','TEMP','UNDOTBS1') order by 1;

スクリプトはターゲットデータベースに適用されます。

DBA

ユーザー、プロファイル、ロール、権限を作成するためのスクリプトを生成します。

データベースユーザー、プロファイル、ロール、権限を作成するスクリプトを生成するには、OracleSupport 文書「How to Extract DDL for User including Privileges and Roles Using dbms_metadata.get_ddl (Doc ID 2739952.1)」(Oracle アカウントが必要) にあるスクリプトを使用します。

スクリプトはターゲットデータベースに適用されます。

DBA
タスク説明必要なスキル

ソースデータベースへのデータベースリンクを作成し、接続を確認します。

オンプレミスのソースデータベースへのデータベースリンクを作成するには、次のコマンド例を使用できます。

CREATE DATABASE LINK link2src CONNECT TO <migration_user_account> IDENTIFIED BY <password> USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<dns or ip address of remote db>) (PORT=<listener port>))(CONNECT_DATA=(SID=<remote SID>)))';

接続を確認するには、次の SQL コマンドを実行します。

select * from dual@link2src;

応答が X であれば、接続は成功です。

DBA

スクリプトを実行してターゲットインスタンスを準備します。

以前に生成されたスクリプトを実行して、ターゲットの Amazon RDS for Oracle インスタンスを準備します。

  1. テーブルスペース

  2. プロファイル

  3. ロール

これにより、Oracle Data Pump の移行時にスキーマとそのオブジェクトを確実に作成できるようになります。

DBA、移行エンジニア

ターゲットの Amazon RDS for Oracle インスタンスを準備します。

タスク説明必要なスキル

ソースデータベースへのデータベースリンクを作成し、接続を確認します。

オンプレミスのソースデータベースへのデータベースリンクを作成するには、次のコマンド例を使用できます。

CREATE DATABASE LINK link2src CONNECT TO <migration_user_account> IDENTIFIED BY <password> USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<dns or ip address of remote db>) (PORT=<listener port>))(CONNECT_DATA=(SID=<remote SID>)))';

接続を確認するには、次の SQL コマンドを実行します。

select * from dual@link2src;

応答が X であれば、接続は成功です。

DBA

スクリプトを実行してターゲットインスタンスを準備します。

以前に生成されたスクリプトを実行して、ターゲットの Amazon RDS for Oracle インスタンスを準備します。

  1. テーブルスペース

  2. プロファイル

  3. ロール

これにより、Oracle Data Pump の移行時にスキーマとそのオブジェクトを確実に作成できるようになります。

DBA、移行エンジニア
タスク説明必要なスキル

必要なスキーマを移行します。

必要なスキーマをソースのオンプレミスデータベースからターゲット Amazon RDS インスタンスに移行するには、「追加情報」セクションのコードを使用してください。

  • 1 つのスキーマを移行するには、「追加情報」セクションのコード 1 を実行します。

  • 複数のスキーマを移行するには、「追加情報」セクションのコード 2 を実行します。

移行のパフォーマンスを調整するには、次のコマンドを実行して並列プロセスの数を調整できます。

DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4);
DBA

スキーマ統計を収集してパフォーマンスを向上させます。

「スキーマ統計の収集」コマンドは、データベースオブジェクトに関して収集された Oracle クエリオプティマイザー統計を返します。この情報を使用することで、オプティマイザはこれらのオブジェクトに対するクエリに最適な実行プランを選択できます。

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => '<schema_name>');
DBA

データベースリンクを介して Oracle Data Pump Import を使用して、全負荷移行を実行します。

タスク説明必要なスキル

必要なスキーマを移行します。

必要なスキーマをソースのオンプレミスデータベースからターゲット Amazon RDS インスタンスに移行するには、「追加情報」セクションのコードを使用してください。

  • 1 つのスキーマを移行するには、「追加情報」セクションのコード 1 を実行します。

  • 複数のスキーマを移行するには、「追加情報」セクションのコード 2 を実行します。

移行のパフォーマンスを調整するには、次のコマンドを実行して並列プロセスの数を調整できます。

DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4);
DBA

スキーマ統計を収集してパフォーマンスを向上させます。

「スキーマ統計の収集」コマンドは、データベースオブジェクトに関して収集された Oracle クエリオプティマイザー統計を返します。この情報を使用することで、オプティマイザはこれらのオブジェクトに対するクエリに最適な実行プランを選択できます。

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => '<schema_name>');
DBA
タスク説明必要なスキル

ソースオンプレミスの Oracle データベースで SCN を取得します。

オンプレミスの Oracle データベースのシステム変更番号 (SCN) を取得します。SCN は全ロードインポートに使用し、CDC レプリケーションの開始点としても使用します。

ソースデータベースで現在の SCN を生成するには、次の SQL ステートメントを実行します。

SELECT current_scn FROM V$DATABASE;
DBA

スキーマのフルロード移行を実行します。

必要なスキーマ (FULL LOAD) をソースのオンプレミスデータベースからターゲット Amazon RDS インスタンスに移行するには、以下を実行します。

  • 1 つのスキーマを移行するには、「追加情報」セクションのコード 3 を実行します。

  • 複数のスキーマを移行するには、「追加情報」セクションのコード 4 を実行します。

コードで、 をソースデータベースからキャプチャした SCN <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>に置き換えます。

DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>);

移行のパフォーマンスを調整するには、並列プロセスの数を調整できます。

DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4);
DBA

移行したスキーマのトリガーを無効にします。

CDC AWS DMS 専用タスクを開始する前に、移行されたスキーマTRIGGERSで を無効にします。

DBA

スキーマ統計を収集してパフォーマンスを向上させます。

Gather Schema Statistics コマンドは、データベースオブジェクト用に収集された Oracle クエリオプティマイザ統計を返します。

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => '<schema_name>');

この情報を使用して、オプティマイザーはこれらのオブジェクトに対するあらゆるクエリに最適な実行プランを選択できます。

DBA

を使用して AWS DMS 、ソースからターゲットへの継続的なレプリケーションを実行します。

を使用して AWS DMS 、ソース Oracle データベースからターゲット Amazon RDS for Oracle インスタンスへの継続的なレプリケーションを実行します。

詳細については、「 を使用した継続的なレプリケーションのタスクの作成 AWS DMS」およびブログ記事「 でのネイティブ CDC サポートの操作方法 AWS DMS」を参照してください。

DBA、移行エンジニア

Oracle Data Pump と を使用してフルロード移行と CDC レプリケーションを実行する AWS DMS

タスク説明必要なスキル

ソースオンプレミスの Oracle データベースで SCN を取得します。

オンプレミスの Oracle データベースのシステム変更番号 (SCN) を取得します。SCN は全ロードインポートに使用し、CDC レプリケーションの開始点としても使用します。

ソースデータベースで現在の SCN を生成するには、次の SQL ステートメントを実行します。

SELECT current_scn FROM V$DATABASE;
DBA

スキーマのフルロード移行を実行します。

必要なスキーマ (FULL LOAD) をソースのオンプレミスデータベースからターゲット Amazon RDS インスタンスに移行するには、以下を実行します。

  • 1 つのスキーマを移行するには、「追加情報」セクションのコード 3 を実行します。

  • 複数のスキーマを移行するには、「追加情報」セクションのコード 4 を実行します。

コードで、 をソースデータベースからキャプチャした SCN <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>に置き換えます。

DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>);

移行のパフォーマンスを調整するには、並列プロセスの数を調整できます。

DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4);
DBA

移行したスキーマのトリガーを無効にします。

CDC AWS DMS 専用タスクを開始する前に、移行されたスキーマTRIGGERSで を無効にします。

DBA

スキーマ統計を収集してパフォーマンスを向上させます。

Gather Schema Statistics コマンドは、データベースオブジェクト用に収集された Oracle クエリオプティマイザ統計を返します。

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS(ownname => '<schema_name>');

この情報を使用して、オプティマイザーはこれらのオブジェクトに対するあらゆるクエリに最適な実行プランを選択できます。

DBA

を使用して AWS DMS 、ソースからターゲットへの継続的なレプリケーションを実行します。

を使用して AWS DMS 、ソース Oracle データベースからターゲット Amazon RDS for Oracle インスタンスへの継続的なレプリケーションを実行します。

詳細については、「 を使用した継続的なレプリケーションのタスクの作成 AWS DMS」およびブログ記事「 でのネイティブ CDC サポートの操作方法 AWS DMS」を参照してください。

DBA、移行エンジニア
タスク説明必要なスキル

カットオーバーの 48 時間前にインスタンスでマルチ AZ を有効にします。

本番インスタンスの場合は、Amazon RDS インスタンスでマルチ AZ 配置を有効にして、高可用性 (HA) とディザスタリカバリ (DR) のメリットを活用することをお勧めします。

DBA、移行エンジニア

CDC AWS DMS のみのタスクを停止します (CDC がオンの場合)。

  1. AWS DMS タスクの Amazon CloudWatch メトリクスのソースレイテンシーとターゲットレイテンシーが 0 秒であることを確認します。

  2. CDC AWS DMS のみのタスクを停止します。

DBA

トリガーを有効にします。

CDC タスクの作成前にTRIGGERS無効にした を有効にします。

DBA

Amazon RDS for Oracle へのカットオーバー

タスク説明必要なスキル

カットオーバーの 48 時間前にインスタンスでマルチ AZ を有効にします。

本番インスタンスの場合は、Amazon RDS インスタンスでマルチ AZ 配置を有効にして、高可用性 (HA) とディザスタリカバリ (DR) のメリットを活用することをお勧めします。

DBA、移行エンジニア

CDC AWS DMS のみのタスクを停止します (CDC がオンの場合)。

  1. AWS DMS タスクの Amazon CloudWatch メトリクスのソースレイテンシーとターゲットレイテンシーが 0 秒であることを確認します。

  2. CDC AWS DMS のみのタスクを停止します。

DBA

トリガーを有効にします。

CDC タスクの作成前にTRIGGERS無効にした を有効にします。

DBA

AWS

Oracle のドキュメント

コード 1: フルロード移行のみ、単一アプリケーションスキーマ

DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''<schema_name>'')'); -- To migrate one selected schema DBMS_DATAPUMP.METADATA_FILTER (hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /

コード 2: フルロード移行のみ、複数のアプリケーションスキーマ

DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'SCHEMA_LIST', '''<SCHEMA_1>'',''<SCHEMA_2>'', ''<SCHEMA_3>'''); -- To migrate multiple schemas DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /

コード 3: CDC 専用タスク、単一アプリケーションスキーマ前のフルロード移行

DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''<schema_name>'')'); -- To migrate one selected schema DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>); -- SCN required for AWS DMS CDC only task. DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /

コード 4: CDC 専用タスク前のフルロード移行、複数のアプリケーションスキーマ

DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN (operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE (handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'SCHEMA_LIST', '''<SCHEMA_1>'',''<SCHEMA_2>'', ''<SCHEMA_3>'''); -- To migrate multiple schemas DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>); -- SCN required for AWS DMS CDC only task. DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /

混合移行アプローチの方がうまくいくシナリオ

ソースデータベースに数百万行のテーブルがあり、LOBSEGMEGT 列のサイズが非常に大きいというまれなシナリオでは、このパターンによって移行が遅くなります。Oracle では、ネットワークリンクを介して LOBSEGMENT を 1 つずつ移行します。ソーステーブルから (LOB カラムのデータとともに) 1 つの行を抽出し、その行をターゲットテーブルに挿入し、すべての行が移行されるまでこのプロセスを繰り返します。データベースリンクを介した Oracle Data Pump は、LOBSEGMENT の一括ロードまたはダイレクトパスロードのメカニズムをサポートしていません。

この状況では、次のことをお勧めします。

  • 次のメタデータフィルターを追加して、Oracle Data Pump の移行中に識別されたテーブルをスキップします。

    dbms_datapump.metadata_filter(handle =>h1, name=>'NAME_EXPR', value => 'NOT IN (''TABLE_1'',''TABLE_2'')');
  • AWS DMS タスク (フルロード移行、必要に応じて CDC レプリケーション) を使用して、識別されたテーブルを移行します。 AWS DMS はソース Oracle データベースから複数の行を抽出し、ターゲット Amazon RDS インスタンスにバッチに挿入してパフォーマンスを向上させます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.