すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:PolarDB for PostgreSQL と RDS PostgreSQL 間の双方向同期

最終更新日:Mar 06, 2026

Data Transmission Service (DTS) は、PolarDB for PostgreSQL クラスターと PostgreSQL データベース(例: RDS PostgreSQL や自主管理 PostgreSQL データベース)間でリアルタイムの双方向データ同期をサポートします。本トピックでは、RDS PostgreSQL インスタンスを宛先として双方向データ同期を設定する手順について説明します。他のデータソースの場合も、設定手順は同様です。

前提条件

注意事項

説明
  • スキーマ同期中、DTS はソースデータベースから宛先データベースへ外部キーを同期します。

  • 完全データ同期および増分データ同期中、DTS はセッションレベルで一時的に制約チェックおよび外部キーのカスケード操作を無効化します。同期タスク実行中にソースデータベースでカスケード更新または削除操作を実行すると、データ不整合が発生する可能性があります。

種別

説明

ソースデータベースの制限事項

  • PolarDB for PostgreSQL クラスターでは、同期対象のテーブルにプライマリキーまたは NULL を許容しない一意なインデックスが必要です。

  • ソースデータベースに長時間トランザクションが存在し、インスタンスに増分同期タスクがある場合、長時間トランザクションのコミット前に生成された書き込み前ログ(WAL)が蓄積する可能性があります。これにより、ソースデータベースのディスク領域が不足するおそれがあります。

  • 同期タスクが正常に実行されることを保証し、プライマリ/セカンダリのスイッチオーバーによる論理レプリケーションの中断を防止するため、PolarDB for PostgreSQL クラスターは論理レプリケーションスロットフェールオーバーをサポートし、有効化する必要があります。

    説明

    ソースの PolarDB for PostgreSQL クラスターが論理レプリケーションスロットフェールオーバーをサポートしていない場合(例:クラスターのデータベースエンジンPostgreSQL 14の場合)、ソースデータベースにおける高可用性(HA)スイッチオーバーにより、同期インスタンスが失敗し、回復不能になる可能性があります。

  • ソースデータベースにおける論理レプリケーションの制限により、増分変更後の同期対象データのサイズが 256 MB を超える場合、同期インスタンスが失敗し、回復不能になる可能性があります。この場合は、同期インスタンスを再構成する必要があります。

  • スキーマ同期または完全同期中に、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。そうしないと、同期タスクが失敗します。

    説明

    完全同期中、DTS はソースデータベースに対してクエリを実行します。これによりメタデータロックが発生し、ソースデータベースでの DDL 操作がブロックされる可能性があります。

その他の制限事項

  • 単一のデータ同期タスクでは、1 つのデータベースのみを同期できます。複数のデータベースを同期するには、各データベースごとに個別のタスクを設定する必要があります。

  • DTS は、TimescaleDB 拡張テーブル、スキーマをまたいだ継承テーブル、式に基づく一意なインデックスを持つテーブルの同期をサポートしていません。

  • プラグインのインストールによって作成されたスキーマは同期できません。タスク設定時にコンソールでこれらのスキーマに関する情報を取得することはできません。

  • 以下の 3 つのシナリオでは、データを書き込む前に、ソースデータベースの同期対象テーブルに対してALTER TABLE schema.table REPLICA IDENTITY FULL; コマンドを実行する必要があります。これにより、データ整合性が確保されます。デッドロックを防ぐため、このコマンド実行中にテーブルをロックしないでください。関連する事前チェック項目をスキップした場合、DTS はインスタンスの初期化時に自動的にこのコマンドを実行します。

    • インスタンスが初めて実行されるとき。

    • オブジェクト選択の粒度として スキーマ を選択し、スキーマ内に新しいテーブルが作成された場合、または RENAME コマンドを使用して同期対象テーブルが再構築された場合。

    • 同期オブジェクトを変更する機能を使用する場合。

    説明
    • コマンド内の schema および table は、実際のスキーマ名およびテーブル名に置き換えてください。

    • この操作は、業務負荷の低い時間帯に行うことを推奨します。

  • 同期対象テーブルに SERIAL 型のフィールドが含まれる場合、ソースデータベースはそのフィールドに対して自動的にシーケンスを作成します。したがって、ソースオブジェクト を設定する際に、スキーマ同期同期タイプ として選択する場合は、シーケンス を選択するか、スキーマ全体を同期することを推奨します。これを怠ると、同期インスタンスが実行に失敗する可能性があります。

  • 初期完全同期中、DTS はソースおよび宛先データベースの読み取り・書き込みリソースを消費するため、データベースの負荷が高まる可能性があります。そのため、データ同期を実行する前に、ソースおよび宛先データベースのパフォーマンスを評価し、業務負荷の低い時間帯(例:両データベースの CPU 負荷が 30 % 未満の時間帯)に同期を実行してください。

  • 完全データ同期では並列 INSERT 操作が実行されるため、宛先データベースでテーブルの断片化が発生します。その結果、完全同期完了後に宛先データベースのテーブル領域がソースインスタンスよりも大きくなります。

  • DTS 同期中は、DTS 以外のソースから宛先データベースへデータを書き込まないでください。そうしないと、ソースおよび宛先データベース間でデータ不整合が発生する可能性があります。

  • 双方向同期タスクには、正方向および逆方向の同期タスクが含まれます。タスクを設定またはリセットする際、あるタスクの宛先オブジェクトが他方のタスクの同期オブジェクトと一致する場合:

    • 完全および増分データの同期を許可するのは 1 つのタスクのみです。もう一方のタスクは増分同期のみをサポートします。

    • 現在のタスクのソースからのデータは、現在のタスクの宛先にのみ同期され、他方のタスクのソースデータとしては使用されません。

  • データ同期中、DTS はソースデータベースに dts_sync_ 接頭辞を持つレプリケーションスロットを作成してデータをレプリケートします。このレプリケーションスロットにより、DTS は直近 15 分間のソースデータベースからの増分ログを取得できます。データ同期が失敗した場合や同期インスタンスがリリースされた場合、DTS はレプリケーションスロットを自動的にクリアしようと試みます。

    説明
    • データ同期中に、タスクで使用されるソースデータベースアカウントのパスワードを変更したり、ソースデータベースのホワイトリストから DTS の IP アドレスを削除したりすると、レプリケーションスロットが自動的にクリアされなくなります。この場合、ソースデータベースでレプリケーションスロットを手動でクリアする必要があります。これにより、スロットが継続的に蓄積してディスク領域を消費し、ソースデータベースが利用不可になることを防ぎます。

    • ソースデータベースでフェールオーバーが発生した場合、セカンダリデータベースにログインしてスロットを手動でクリアする必要があります。

    Amazon slot查询信息

  • DTS はデータ内容の検証を行いますが、シーケンスなどのメタデータの検証はサポートしていません。メタデータの検証はお客様自身で実施する必要があります。

  • DTS は、増分データの DDL 文、増分テーブルの構造、ハートビート情報の取得のために、ソースデータベースに以下の臨時テーブルを作成します。同期中はこれらの臨時テーブルを削除しないでください。削除すると、DTS タスクが異常になります。DTS インスタンスがリリースされると、これらの臨時テーブルは自動的に削除されます。

    public.dts_pg_classpublic.dts_pg_attributepublic.dts_pg_typepublic.dts_pg_enumpublic.dts_postgres_heartbeatpublic.dts_ddl_commandpublic.dts_args_session、および public.aliyun_dts_instance

  • 業務を宛先インスタンスに切り替えた後、新規シーケンスはソースシーケンスの最大値からインクリメントされません。業務切り替え前に、ソースデータベースの対応するシーケンスの最大値を照会し、それを宛先データベースの対応するシーケンスの初期値として設定する必要があります。以下のコマンドでソースデータベースのシーケンス値を照会します:

    do language plpgsql $$
    declare
      nsp name;
      rel name;
      val int8;
    begin
      for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S'
      loop
        execute format($_$select last_value from %I.%I$_$, nsp, rel) into val;
        raise notice '%',
        format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1);
      end loop;
    end;
    $$;
    説明

    コマンド実行後に返される SQL 文には、ソースデータベースのすべてのシーケンスが含まれています。必要に応じて、これらの SQL 文を宛先データベースで実行してください。

  • 完全または増分同期タスクにおいて、ソースデータベースの同期対象テーブルに外部キー、トリガー、またはイベントトリガーが含まれる場合、宛先データベースアカウントが特権アカウントまたはスーパーユーザ権限を持っている場合は、DTS はセッションレベルで一時的に session_replication_role パラメーターを replica に設定します。宛先データベースアカウントがこれらの権限を持っていない場合は、宛先データベースで session_replication_role パラメーターを手動で replica に設定する必要があります。この期間中(session_replication_role が replica の状態)にソースデータベースでカスケード更新または削除操作が発生すると、データ不整合が発生する可能性があります。DTS タスクがリリースされた後、session_replication_role パラメーターを origin に戻すことができます。

  • タスクが失敗した場合、DTS サポートスタッフが 8 時間以内に復旧を試みます。復旧中、タスクを再起動したり、パラメーターを調整したりすることがあります。

    説明

    変更されるのは DTS タスクのパラメーターのみであり、データベースのパラメーターではありません。 調整される可能性のあるパラメーターについては、「インスタンスパラメーターの変更」をご参照ください。

  • パーティションテーブルを同期する場合、親テーブルおよびその子パーティションを両方とも同期オブジェクトに含める必要があります。そうしないと、パーティションテーブルでデータ不整合が発生する可能性があります。

    説明

    PostgreSQL のパーティションテーブルの親テーブルはデータを直接格納しません。すべてのデータは子パーティションに格納されます。したがって、同期タスクには親テーブルとすべての子パーティションを含める必要があります。これを怠ると、子パーティションのデータが同期されず、ソースおよび宛先間でデータ不整合が発生する可能性があります。

課金

同期タイプ

料金

スキーマ同期および完全データ同期

無料です。

増分データ同期

課金対象です。詳細については、「課金概要」をご参照ください。

サポートされる競合検出

データ整合性を確保するため、双方向同期においては、同一のプライマリキー、ビジネスプライマリキー、または一意キーを持つデータレコードを、いずれか 1 つのデータベースインスタンスでのみ更新するようにしてください。両方のデータベースインスタンスでデータレコードが更新された場合、DTS システムはタスクで設定された競合解決ポリシーを適用します。

DTS は、双方向同期タスクの安定性を最大化するために、競合の検出および修正を行います。DTS が検出可能な競合の種類は以下のとおりです:

  • INSERT 操作による一意性競合

    双方向同期において、同一のプライマリキーを持つレコードが両方のデータベースインスタンスに同時に(またはほぼ同時)挿入された場合、一意性制約競合が発生します。INSERT 文がピアインスタンスに同期された際、同一のプライマリキー値を持つ既存のレコードが存在するため、失敗します。

  • UPDATE 操作における不一致レコード

    • 更新対象のレコードが宛先インスタンスに存在しない場合、DTS は UPDATE 操作を INSERT 操作に変換します。ただし、一意性競合が発生する可能性があります。

    • UPDATE 操作で更新されるレコードがプライマリキーまたは一意キーの競合を引き起こす場合。

  • 削除対象のレコードが存在しない場合

    削除対象のレコードが宛先インスタンスに存在しない場合、DTS は指定された競合解決ポリシーに関係なく、DELETE 操作を無視します。

重要
  • 時間差および遅延の影響により、DTS は 100 % の競合防止を保証できません。整合性を確保するため、同一のプライマリキーまたは一意キーを持つレコードは、1 つのデータベースインスタンスでのみ更新してください。

  • DTS は、上記のデータ競合に対してさまざまな競合解決戦略を提供しており、双方向データ同期の設定時に選択できます。

サポートされる同期オブジェクト

スキーマ、テーブル

説明
  • これは、プライマリキー、一意キー、外部キー、データ型(組み込みデータ型)、およびデフォルト制約を含みます。

  • このデータベースタイプをソースとしてサポートされる機能は、宛先データベースタイプによって異なります。詳細については、コンソールの設定ページをご参照ください。

サポートされる SQL 操作

重要

データ定義言語(DDL)操作は、正方向タスク(ソースデータベースから宛先データベース)でのみ同期可能です。逆方向タスク(宛先データベースからソースデータベース)では DDL 操作はサポートされておらず、自動的にフィルターされます。

操作タイプ

SQL 文

DML

INSERT、UPDATE、DELETE

DDL

  • DDL 同期は、2020 年 10 月 1 日以降に作成された同期タスクでのみサポートされます。

    重要
    • 2023 年 5 月 12 日以前に作成されたタスクについては、タスク設定前にソースデータベースで DDL 情報をキャプチャするためのトリガーおよび関数を作成する必要があります。詳細については、「PostgreSQL 向けの増分 DDL 移行をトリガーおよび関数で実装する」をご参照ください。

    • 増分データ同期中は、bit 型のデータはサポートされていません。

  • ソースデータベースアカウントが特権権限を持つ場合、同期タスクは以下の DDL 操作をサポートします:

    • CREATE TABLE、DROP TABLE

    • ALTER TABLE(RENAME TABLE、ADD COLUMN、ADD COLUMN DEFAULT、ALTER COLUMN TYPE、DROP COLUMN、ADD CONSTRAINT、ADD CONSTRAINT CHECK、ALTER COLUMN DROP DEFAULT を含む)

    • TRUNCATE TABLE(ソースの PolarDB for PostgreSQL のデータベースエンジンは PostgreSQL 11 以降である必要があります)

    • CREATE INDEX ON TABLE

重要
  • CASCADE または RESTRICT などの追加句を含む DDL 文はサポートされていません。

  • SET session_replication_role = replica が設定されたセッションで実行された DDL 文はサポートされていません。

  • 関数呼び出しによって実行された DDL 文はサポートされていません。

  • 単一のトランザクションに DML 文と DDL 文が混在する場合、DDL 文は同期されません。

  • 単一のトランザクションに同期対象外のオブジェクトに対する DDL 文が含まれる場合、その DDL 文は同期されません。

データベースアカウントの権限

データベース

必要な権限

アカウントの作成および権限付与

PolarDB for PostgreSQL

特権アカウントおよびデータベース所有者。

データベースアカウントの作成 および データベース管理

RDS PostgreSQL

特権アカウントおよびデータベース所有者(権限付与済みアカウント)。

アカウントの作成 および データベースの作成

操作手順

  1. 双方向同期インスタンスを購入します。詳細については、「データ同期インスタンスの購入」をご参照ください。

    重要

    インスタンス購入時に、機能データ同期ソースインスタンスPolarDB PostgreSQL宛先インスタンスPostgreSQL同期トポロジー双方向同期 に設定します。その他のパラメーターは必要に応じて設定してください。

  2. 宛先リージョンの同期タスク一覧ページに移動します。以下のいずれかの方法でアクセスできます:

    DTS コンソールからアクセス

    1. Data Transmission Service (DTS) コンソール にログインします。

    2. 左側のナビゲーションウィンドウで、データ同期 をクリックします。

    3. ページの左上隅で、同期インスタンスが配置されているリージョンを選択します。

    DMS コンソールからアクセス

    説明

    実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS インターフェイスのレイアウトおよびスタイルのカスタマイズ」をご参照ください。

    1. Data Management (DMS) にログインします。

    2. トップメニューで、Data + AI > Data Transmission (DTS) > Data Synchronization の順に選択します。

    3. データ同期タスク の右側で、同期インスタンスが配置されているリージョンを選択します。

  3. 双方向同期インスタンスを検索します。操作 列の正方向タスクで、タスクの設定 をクリックします。

  4. ソースおよび宛先データベースを設定します。

    カテゴリ

    設定

    説明

    なし

    タスク名

    DTS が自動的にタスク名を生成します。識別しやすいように、意味のある名前を指定することを推奨します。名前は一意である必要はありません。

    移行元データベース

    既存の接続情報の選択

    • システムに追加済みのデータベースインスタンス(新規作成または保存済み)を使用する場合は、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に設定されます。

      説明

      DMS コンソールでは、この設定項目の名称は DMS データベースインスタンスの選択 です。

    • データベースインスタンスをシステムに追加していない場合、または既に追加済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。

    データベースタイプ

    PolarDB for PostgreSQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    これは、インスタンス購入時に選択したリージョンに固定されており、変更できません。

    Alibaba Cloud アカウント間でデータを複製

    本例では、現在の Alibaba Cloud アカウントに属するデータベースインスタンスを使用します。× を選択します。

    インスタンス ID

    ソースの PolarDB for PostgreSQL クラスターの ID を選択します。

    データベース名

    ソースの PolarDB for PostgreSQL クラスター内で同期対象オブジェクトが属するデータベースの名前を入力します。

    データベースアカウント

    ソースの PolarDB for PostgreSQL クラスターのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースのパスワード

    データベースアカウントに対応するパスワードを入力します。

    移行先データベース

    既存の接続情報の選択

    • システムに追加済みのデータベースインスタンス(新規作成または保存済み)を使用する場合は、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に設定されます。

      説明

      DMS コンソールでは、この設定項目の名称は DMS データベースインスタンスの選択 です。

    • データベースインスタンスをシステムに追加していない場合、または既に追加済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。

    データベースタイプ

    PostgreSQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    これは、インスタンス購入時に選択したリージョンに固定されており、変更できません。

    インスタンス ID

    宛先の RDS PostgreSQL インスタンスの ID を選択します。

    データベース名

    宛先の RDS PostgreSQL インスタンスでデータを受信するデータベースの名前を入力します。

    データベースアカウント

    ターゲットの RDS PostgreSQL インスタンスのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースのパスワード

    データベースアカウントに対応するパスワードを入力します。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。業務要件に応じてこのパラメーターを設定できます。本例では、非暗号化 を選択します。

    SSL 暗号化接続をソースデータベースに確立する場合は、以下の手順を実行します:SSL 暗号化 を選択し、必要に応じて CA 証明書クライアント証明書、および クライアント証明書の秘密鍵 をアップロードし、クライアント証明書の秘密鍵のパスワード を指定します。

    説明
    • 自己管理データベースの SSL 暗号化 を設定する場合、CA 証明書 をアップロードする必要があります。

    • クライアント証明書を使用する場合は、クライアント証明書 および クライアント証明書の秘密鍵 をアップロードし、クライアント証明書の秘密鍵のパスワード を指定する必要があります。

    • ApsaraDB RDS for PostgreSQL インスタンスの SSL 暗号化を設定する方法について詳しくは、「SSL 暗号化」をご参照ください。

  5. 設定を完了したら、ページ下部の 接続をテストして続行 をクリックします。

    説明
    • DTS サーバーの IP アドレス CIDR ブロックを、ソースおよび宛先データベースのセキュリティ設定に追加して、DTS サーバーからのアクセスを許可してください。これは自動的または手動で実行できます。詳細については、「DTS サーバーの IP アドレス CIDR ブロックをホワイトリストに追加」をご参照ください。

    • ソースまたは宛先データベースが自己管理データベース(アクセス方法Alibaba Cloud インスタンス でない場合)、接続テストDTS サーバーの CIDR ブロック ダイアログボックスでクリックする必要があります。

  6. タスクオブジェクトを設定します。

    1. オブジェクト設定 ページで、同期対象のオブジェクトを設定します。

      設定

      説明

      同期タイプ

      増分データ同期 が選択されています。デフォルトでは、スキーマ同期 および 完全データ同期 も選択する必要があります。事前チェックが完了すると、DTS はソースインスタンスから宛先クラスターへ選択されたオブジェクトの完全データ同期を実行します。これは、その後の増分データ同期のベースラインデータとなります。

      DDL 操作を除外

      • を選択:DDL 操作は同期されません。

      • × を選択:DDL 操作は同期されます。

        重要

        双方向同期リンクの安定性を確保するため、DDL 操作の同期は正方向タスク(ソースデータベースから宛先データベース)のみで設定できます。逆方向タスク(宛先データベースからソースデータベース)では、DDL 操作は自動的にフィルターされます。

      グローバルな競合修復ポリシー

      要件に応じて、競合解決ポリシーを選択してください。

      • Taskfailed (競合が発生した場合、エラーが報告されタスクは終了します。)

        同期中にデータ競合が発生した場合、タスクはエラーを報告し、停止します。タスクは「失敗」状態になり、手動介入が必要です。

      • Ignore (競合が発生した場合、移行先インスタンスの競合レコードが使用されます。)

        同期中にデータ競合が発生した場合、現在の同期文はスキップされ、処理は継続されます。宛先データベースの競合レコードは保持されます。

      • Overwrite (競合が発生した場合、移行先インスタンスの競合レコードは上書きされます。)

        同期中にデータ競合が発生した場合、宛先データベースの競合レコードが上書きされます。

      説明
      • サポートされる競合の種類については、「サポートされる競合検出」をご参照ください。

      • 同期タスクが一時停止または再開され、同期遅延が発生している場合、これらのポリシーは遅延期間中には適用されません。デフォルトでは、宛先のデータが上書きされます。

      競合するテーブルの処理モード

      • エラーの事前チェックと報告:宛先データベースに同名のテーブルが存在するかどうかをチェックします。同名のテーブルが存在しない場合、事前チェックは通過します。同名のテーブルが存在する場合、事前チェックは失敗し、データ同期タスクは開始されません。

        説明

        宛先データベースで同名のテーブルを削除または名前変更できない場合、別のテーブル名にマッピングできます。詳細については、「テーブルおよび列名のマッピング」をご参照ください。

      • エラーを無視して続行:宛先データベースにおける重複テーブル名のチェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データ不整合が発生し、業務にリスクを及ぼす可能性があります。例:

        • テーブルスキーマが同一で、宛先データベースのレコードとソースデータベースのレコードが同一のプライマリキーまたは一意キー値を持つ場合:

          • 完全同期中、DTS は宛先クラスターのレコードを保持します。ソースデータベースの対応するレコードは同期されません。

          • 増分同期中、ソースデータベースのレコードが宛先データベースのレコードを上書きします。

        • テーブルスキーマが異なる場合、初期データ同期が失敗する可能性があります。これにより、一部の列データのみが同期されるか、完全に同期が失敗する可能性があります。慎重に進めてください。

      移行先インスタンスでのオブジェクト名の大文字化

      宛先インスタンスにおけるデータベース、テーブル、列などのオブジェクト名の大文字小文字の処理ポリシーを設定できます。デフォルトでは、DTS のデフォルトポリシー が選択されています。また、ソースまたは宛先データベースのデフォルトポリシーと大文字小文字の処理を一致させることもできます。詳細については、「宛先データベースにおけるオブジェクト名の大文字小文字の処理」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト ボックスで同期対象のオブジェクトをクリックし、向右 をクリックして 選択中のオブジェクト ボックスに移動します。

      説明
      • スキーマまたはテーブルを同期オブジェクトとして選択できます。テーブルを選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは宛先データベースに同期されません。

      • 同期対象テーブルに SERIAL データ型が含まれており、スキーマ同期同期タイプ として選択する場合、シーケンス を選択するか、スキーマ全体を同期することを推奨します。

      選択中のオブジェクト

      • 宛先インスタンスにおけるオブジェクト名を変更するには、選択中のオブジェクト ボックスでオブジェクトを右クリックし、名前を編集します。詳細については、「テーブルおよび列名のマッピング」をご参照ください。

      • オブジェクトを削除するには、選択中のオブジェクト ボックスでオブジェクトをクリックし、image をクリックして ソースオブジェクト ボックスに戻します。

      説明
      • オブジェクト名マッピング機能を使用する場合、マッピングされたオブジェクトに依存する他のオブジェクトが同期に失敗する可能性があります。

      • WHERE 句を使用してデータをフィルターするには、選択中のオブジェクト ボックスでテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を指定します。詳細については、「列のフィルター」をご参照ください。

      • 増分同期で同期する SQL 操作を選択するには、選択中のオブジェクト ボックスでオブジェクトを右クリックします。表示されるダイアログボックスで、同期する SQL 操作を選択します。

    2. 詳細設定へ をクリックして、高度なパラメーターを設定します。

      設定

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、DTS は共有クラスター上でタスクをスケジュールし、クラスターを選択する必要はありません。より安定したパフォーマンスを得るには、DTS 同期タスクを実行する専用クラスターを購入できます。詳細については、「DTS 専用クラスターとは?」をご参照ください。

      失敗した接続の再試行時間

      同期タスクが開始された後、ソースまたは宛先データベースへの接続が失敗した場合、DTS はエラーを報告し、即座に接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。10 分から 1,440 分の範囲でカスタムのリトライ時間を指定することもできます。リトライ時間は 30 分以上に設定することを推奨します。指定された時間内に DTS がデータベースへの再接続に成功した場合、同期タスクは自動的に再開します。そうでない場合、タスクは失敗します。

      説明
      • 複数の DTS インスタンス(例:インスタンス A およびインスタンス B)が同一のソースまたは宛先を共有しており、インスタンス A のネットワークリトライ時間を 30 分、インスタンス B のネットワークリトライ時間を 60 分に設定した場合、両方のインスタンスには短い方の 30 分が適用されます。

      • 接続リトライ期間中も DTS はタスク実行時間に対して課金されるため、業務要件に応じてリトライ時間をカスタマイズするか、ソースおよび宛先データベースインスタンスがリリースされた直後に DTS インスタンスをできるだけ早くリリースすることを推奨します。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      同期タスクが開始された後、ソースまたは宛先データベースで接続性以外の問題(DDL または DML 実行例外など)が発生した場合、DTS はエラーを報告し、即座に継続的なリトライ操作を開始します。デフォルトのリトライ時間は 10 分です。1 分から 1,440 分の範囲でカスタムのリトライ時間を指定することもできます。リトライ時間は 10 分以上に設定することを推奨します。設定されたリトライ時間内に関連操作が成功した場合、同期タスクは自動的に再開します。そうでない場合、タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。

      完全同期レートを制限するかどうか

      完全同期段階では、DTS がソースおよび宛先データベースの読み取り・書き込みリソースを消費するため、データベースの負荷が高まる可能性があります。ソースおよび宛先データベースの負荷を軽減するため、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS のパラメーターを設定することで、完全同期タスクのレート制限を設定できます。

      説明
      • この設定項目は、同期タイプ完全データ同期 に設定されている場合にのみ利用可能です。

      • 同期インスタンスが実行中の場合でも、「完全同期レートの調整」を実行できます。

      増分同期率を制限するかどうか

      増分同期タスクのレート制限も設定できます。宛先データベースへの負荷を軽減するため、1 秒あたりの増分同期の行数 RPS および 1 秒あたりの増分同期データ量 (MB) BPS を設定します。

      環境タグ

      必要に応じて、インスタンスを識別する環境タグを選択します。本例では、選択は不要です。

      ETL 機能の設定

      抽出・変換・書き出し(ETL)機能を有効化するかどうかを選択します。詳細については、「ETL とは?」をご参照ください。有効な値は以下のとおりです:

    3. 次へ:データ検証 をクリックして、データ検証タスクを設定します。

      データ検証機能を使用する場合は、「データ検証の設定」を参照して設定手順をご確認ください。

  7. タスクを保存し、事前チェックを実行します。

    • このインスタンスの API パラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにカーソルを合わせ、ポップアップで OpenAPI パラメーターのプレビュー をクリックします。

    • API パラメーターの確認が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • 同期ジョブが開始される前に、DTS は事前チェックを実行します。すべての事前チェック項目が合格した場合にのみ、ジョブを開始できます。

    • 事前チェックが失敗した場合、失敗した項目の横にある 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行してください。

    • 事前チェックで警告が返された場合:

      • 無視できないチェック項目が失敗した場合、項目の横にある 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行してください。

      • 無視可能なチェック項目については、アラートの詳細を確認無視OK再度事前チェックを実行 の順にクリックして、警告をスキップし、再度事前チェックを実行できます。警告項目を無視した場合、データ不整合などの問題が発生し、業務にリスクを及ぼす可能性があります。

  8. 成功率100% になったら、戻る をクリックします。

  9. 逆方向同期タスクを設定します。

    1. 正方向同期タスクが初期同期を完了し、その ステータス実行中 になるまで待ちます。

    2. 逆方向タスクの 操作 列で、タスクの設定 をクリックします。

    3. 逆方向同期タスクの設定については、「手順 4」から「手順 7」を参照してください。

      重要
      • 逆方向同期タスクを設定する際は、正しいソースおよび宛先インスタンスを選択する必要があります。逆方向タスクのソースインスタンスは、正方向タスクの宛先インスタンスです。逆方向タスクの宛先インスタンスは、正方向タスクのソースインスタンスです。また、データベース名、アカウント、パスワードなどのインスタンス情報が一致していることを慎重に確認する必要があります。

      • 逆方向同期タスクでは、ソースおよび宛先データベースの インスタンスのリージョン を変更できません。正方向同期タスクと比較して、設定可能なパラメーターの数が少なくなります。コンソールに表示されるパラメーターのみを設定してください。

      • 逆方向同期タスクの 競合するテーブルの処理モード は、正方向同期タスクによって宛先インスタンスに同期されたテーブルをチェックしません。

      • 逆方向同期タスクは、正方向タスクの 選択中のオブジェクト リストにないオブジェクトの同期をサポートしていません。

      • 逆方向タスクの設定時にマッピング機能を使用しないことを推奨します。使用すると、データ不整合が発生する可能性があります。

    4. 成功率100% になったら、戻る をクリックします。

  10. 逆方向同期タスクの設定が完了したら、両方の同期タスクの ステータス実行中 になるまで待ちます。これで、双方向データ同期の設定プロセスが完了します。