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

Data Transmission Service:PolarDB for MySQLクラスター間の双方向データ同期

最終更新日:Oct 31, 2024

このトピックでは、data Transmission Service (DTS) を使用してPolarDB for MySQLクラスター間でデータを同期する方法について説明します。

前提条件

使用上の注意

説明
  • スキーマ同期中、DTSはソースデータベースからターゲットデータベースに外部キーを同期します。

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

カテゴリ

説明

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

  • 同期するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。

  • 同期するオブジェクトとしてテーブルを選択し、ターゲットデータベースのテーブルや列の名前の変更など、テーブルを変更する必要がある場合は、1つのデータ同期タスクで最大1,000のテーブルを同期できます。 タスクを実行して1,000を超えるテーブルを同期すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルを同期するか、タスクを構成してデータベース全体を同期することをお勧めします。

  • 増分データを同期する必要がある場合は、バイナリログ機能を有効にし、loose_polar_log_binパラメーターをonに設定する必要があります。 それ以外の場合、事前チェック中にエラーメッセージが返され、データ同期タスクを開始できません。 詳細については、「バイナリログの有効化」および「パラメーターの変更」をご参照ください。

    説明
    • PolarDB for MySQLクラスターのバイナリログ機能を有効にすると、バイナリログによって占有されているストレージ容量に対して課金されます。

    • 増分データ同期タスクの場合、ソースデータベースのバイナリログは少なくとも24時間保持されます。 完全および増分データ同期タスクの場合、ソースデータベースのバイナリログは少なくとも7日間保持されます。 そうしないと、DTSはバイナリログの取得に失敗し、タスクが失敗する可能性があります。 例外的な状況では、データの不整合または損失が発生します。 完全なデータ同期が完了したら、保持期間を24時間以上に設定できます。 上記の要件に基づいて、バイナリログの保持期間を設定してください。 そうしないと、DTSのサービスレベル契約 (SLA) に記載されているサービスの信頼性またはパフォーマンスが保証されない場合があります。

  • スキーマ同期および完全データ同期中は、DDL文を実行してデータベースまたはテーブルのスキーマを変更しないでください。 それ以外の場合、データ同期タスクは失敗します。

その他の制限

  • DTSは、ソースPolarDB for MySQLクラスターの読み取り専用ノードを同期しません。

  • DTSは、ソースPolarDB for MySQLクラスターからObject Storage Service (OSS) 外部テーブルを同期しません。

  • データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスに対するデータ同期の影響を評価します。 オフピーク時にデータを同期することを推奨します。 最初の完全データ同期中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。

  • 初期の完全データ同期中に、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 最初の完全データ同期が完了した後、ターゲットデータベースの使用表領域のサイズは、ソースデータベースのサイズよりも大きくなります。

  • データ同期中にソーステーブルでDDL操作を実行するためにpt-online-schema-changeなどのツールを使用しないことをお勧めします。 それ以外の場合、データ同期タスクは失敗します。

  • データ同期中に他のソースからのデータがターゲットデータベースに書き込まれない場合は、data Management (DMS) を使用して、ソーステーブルに対してオンラインDDL操作を実行できます。 詳細については、「ロックフリーDDL操作の実行」をご参照ください。

  • データ同期中に他のソースからのデータがターゲットデータベースに書き込まれると、ソースデータベースとターゲットデータベース間のデータの不一致が発生します。 たとえば、他のソースからのデータがターゲットデータベースに書き込まれているときにDMSを使用してオンラインDDLステートメントを実行すると、ターゲットデータベースでデータが失われる可能性があります。

  • ターゲットデータベースでDDL文の実行に失敗した場合、データ同期タスクは引き続き実行されます。 タスクログで実行に失敗したDDLステートメントを表示できます。 タスクログの表示方法の詳細については、「タスクログの表示」をご参照ください。

特別なケース

PolarDB for MySQLクラスター間の双方向データ同期

  • DTSは、2つのPolarDB for MySQLクラスター間でのみ双方向データ同期をサポートします。 DTSは、3つ以上のPolarDB for MySQLクラスター間の双方向データ同期をサポートしていません。

  • DDL同期方向の制限: データの一貫性と双方向データ同期の安定性を確保するために、DDL操作を順方向でのみ同期できます。

  • DTSが双方向データ同期タスクを実行するとき、DTSは循環同期を防ぐためにターゲットデータベースにdtsという名前のデータベースを作成します。 タスクの実行中は、dtsデータベースを変更しないでください。

  • 双方向データ同期インスタンスには、順方向同期タスクと逆方向同期タスクが含まれます。 インスタンスを設定またはリセットするときに、順方向同期タスクと逆方向同期タスクの両方でオブジェクトを同期する場合は、次のルールが適用されます。

    • オブジェクトの完全データと増分データの両方を同期できるのは、タスクの1つだけです。 もう1つのタスクは、オブジェクトの増分データのみを同期します。

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

  • DTSは、CREATE DATABASE IF NOT EXISTS 'test' ステートメントをソースデータベースで実行し、バイナリログファイルの位置を前に移動します。

課金

同期タイプ

タスク設定料金

スキーマ同期と完全データ同期

無料です。

増分データ同期

有料。 詳細については、「課金の概要」をご参照ください。

サポートされている競合検出

データの一貫性を確保するために、同じプライマリキー、ビジネスプライマリキー、または一意のキーを持つデータレコードが、同期ノードの1つでのみ更新されるようにしてください。 両方のノードでデータレコードが更新された場合、DTSはデータ同期タスクに指定した競合解決ポリシーに基づいて競合に応答します。

DTS は競合をチェックして修正し、双方向同期インスタンスの安定性を最大化します。 DTS は以下のタイプの競合を検出できます。

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

    一意性の制約に従わないINSERT操作は同期できません。 たとえば、同じプライマリキー値を持つレコードがほぼ同時に2つの同期ノードに挿入された場合、挿入されたレコードのうちの1つは同期されません。 同じプライマリキー値を持つレコードが他のノードに既に存在するため、同期は失敗します。

  • UPDATE 操作が原因の整合性のないレコード

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

    • 挿入するレコードの主キーまたは一意キーは、宛先インスタンス内の既存のレコードの主キーまたは一意キーと競合する場合があります。

  • 存在しないレコードの削除

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

重要
  • 双方向同期時に、同期元インスタンスと同期先インスタンスのシステム時刻が異なる場合があります。 同期レイテンシが発生する可能性があります。 これらの理由により、DTSは、競合検出メカニズムがすべてのデータ競合を防ぐことができることを保証しません。 双方向同期を実行するには、同じプライマリキー、ビジネスプライマリキー、または一意のキーを持つレコードが、いずれかの同期ノードでのみ更新されるようにします。

  • DTS は、データの同期中に発生する可能性のある競合を防止するための競合解決ポリシーが用意されています。 双方向データ同期を設定するときに、競合解決ポリシーを選択できます。

同期可能なSQL操作

重要

DDL操作は、ソースデータベースからターゲットデータベースへの順方向でのみ同期できます。 DDL操作は逆方向では無視されるため、DDL操作をターゲットデータベースからソースデータベースに同期することはできません。

操作タイプ

SQL文

DML

挿入、更新、および削除

DDL

  • ALTER TABLEとALTER VIEW

  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、およびCREATE VIEW

  • ドロップインデックスとドロップテーブル

  • RENAMEテーブル

    重要

    RENAME TABLE操作は、ソースデータベースと宛先データベースの間にデータの不一致を引き起こす可能性があります。 たとえば、同期するオブジェクトとしてテーブルを選択し、データ同期中にテーブルの名前を変更した場合、このテーブルのデータはターゲットデータベースに同期されません。 この状況を防ぐには、データ同期タスクを設定するときに、このテーブルが属するデータベースを同期するオブジェクトとして選択します。 RENAME table操作の前後にテーブルが属するデータベースが、同期するオブジェクトに追加されていることを確認してください。

  • TRUNCATE TABLE

データベースアカウントに必要な権限

データベースタイプ

必要な権限

関連ドキュメント

PolarDB for MySQLクラスターのソース

特権アカウントの権限

データベースアカウントの作成と管理データベースアカウントのパスワードの管理

移行先PolarDB for MySQLクラスター

手順

  1. [データ同期タスク] ページに移動します。

    1. DMSコンソールにログインします。

    2. 上部のナビゲーションバーで、ポインタをデータ开発上に移動します。

    3. DTS (DTS) > データ同期を選択します。

    説明
  2. データ同期タスクの右側で、データ同期インスタンスが存在するリージョンを選択します。

    説明

    新しいDTSコンソールを使用する場合は、上部のナビゲーションバーでデータ同期タスクを作成するリージョンを選択します。

  3. タスクの作成 をクリックして、タスク設定ページに移動します。

  4. (オプションの手順) ページの右上隅にある 新バージョンの設定ページを試してみる をクリックします。

    説明
    • ページの右上隅に 旧バージョンの設定ページに戻る ボタンが表示されている場合は、この手順をスキップします。

    • 構成ページの新しいバージョンと以前のバージョンの特定のパラメータは異なる場合があります。 設定ページの新しいバージョンを使用することを推奨します。

  5. ソースデータベースとターゲットデータベースを設定します。 下表に、各パラメーターを説明します。

    セクション

    パラメーター

    説明

    非該当

    タスク名

    DTSタスクの名前。 タスク名は自動生成されます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を指定する必要はありません。

    移行元データベース

    DMS データベースインスタンスの選択

    使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。

    • 既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。

    • 既存のインスタンスを選択しない場合は、次のデータベース情報を設定する必要があります。

    説明

    データベースタイプ

    移行元ディスクのタイプを設定します。 PolarDB for MySQL を選択します。

    アクセス方法

    ソースデータベースのアクセス方法。 Alibaba Cloud インスタンス を選択します。

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

    ソースPolarDB for MySQLクラスターが存在するリージョン。

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

    この例では、現在のAlibaba Cloudアカウントのデータベースインスタンスが使用されています。 × を選択します。

    PolarDB クラスター ID

    ソースPolarDB for MySQLクラスターのID。

    データベースアカウント

    ソースPolarDB for MySQLクラスターのデータベースアカウント。 データベースアカウントに必要な権限の詳細については、このトピックの「データベースアカウントに必要な権限」をご参照ください。

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

    データベースインスタンスへのアクセスに使用されるパスワード。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。 このパラメーターは、ビジネス要件に基づいて設定できます。 SSL暗号化機能の詳細については、「SSL暗号化の設定」をご参照ください。

    移行先データベース

    DMS データベースインスタンスの選択

    使用するデータベースインスタンス。 ビジネス要件に基づいて、既存のインスタンスを使用するかどうかを選択できます。

    • 既存のインスタンスを選択すると、DTSはデータベースのパラメーターを自動的に入力します。

    • 既存のインスタンスを選択しない場合は、次のデータベース情報を設定する必要があります。

    説明

    データベースタイプ

    ターゲットデータベースのタイプ。 PolarDB for MySQL を選択します。

    アクセス方法

    ターゲットデータベースのアクセス方法。 Alibaba Cloud インスタンス を選択します。

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

    ターゲットPolarDB for MySQLクラスターが存在するリージョン。

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

    この例では、現在のAlibaba Cloudアカウントのデータベースインスタンスが使用されています。 × を選択します。

    PolarDB クラスター ID

    移行先のPolarDB for MySQLクラスターのID。

    データベースアカウント

    ターゲットPolarDB for MySQLクラスターのデータベースアカウント。 アカウントに必要な権限の詳細については、このトピックの「データベースアカウントに必要な権限」をご参照ください。

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

    データベースインスタンスへのアクセスに使用されるパスワード。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。 このパラメーターは、ビジネス要件に基づいて設定できます。 SSL暗号化機能の詳細については、「SSL暗号化の設定」をご参照ください。

  6. ページの下部で、接続性をテストして続行をクリックします。

    ソースまたはターゲットデータベースがAlibaba Cloudデータベースインスタンス (ApsaraDB RDS for MySQLインスタンスやApsaraDB for MongoDBインスタンスなど) の場合、DTSは自動的にDTSサーバーのCIDRブロックをインスタンスのホワイトリストに追加します。 ソースデータベースまたはターゲットデータベースがElastic Compute Service (ECS) インスタンスでホストされている自己管理データベースの場合、DTSサーバーのCIDRブロックがECSインスタンスのセキュリティグループルールに自動的に追加されます。ECSインスタンスがデータベースにアクセスできることを確認する必要があります。 データベースが複数のECSインスタンスにデプロイされている場合、DTSサーバーのCIDRブロックを各ECSインスタンスのセキュリティグループルールに手動で追加する必要があります。 ソースデータベースまたはターゲットデータベースが、データセンターにデプロイされているか、サードパーティのクラウドサービスプロバイダーによって提供される自己管理データベースである場合、DTSサーバーのCIDRブロックをデータベースのホワイトリストに手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。 詳細については、「DTSサーバーのCIDRブロックの追加」トピックの「DTSサーバーのCIDRブロック」セクションをご参照ください。

    警告

    DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを同期する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。

  7. 同期するオブジェクトを設定します。

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

      パラメーター

      説明

      同期タイプ

      同期タイプ。 デフォルトでは、増分データ同期が選択されています。 [スキーマ同期] および [完全データ同期] も選択する必要があります。 事前チェックが完了すると、DTSは選択したオブジェクトの履歴データをソースデータベースからターゲットクラスターに同期します。 履歴データは、その後の増分同期の基礎となる。

      移行元データベースのトリガーを移行する方法

      ソースデータベースからトリガーを同期するために使用されるメソッド。 ビジネス要件に基づいて同期方法を選択できます。 同期するトリガーがない場合は、このパラメーターを設定する必要はありません。 詳細については、「ソースデータベースからのトリガーの同期または移行」をご参照ください。

      説明

      このパラメーターは、同期タイプ パラメーターに スキーマ同期 を選択した場合にのみ使用できます。

      同期トポロジ

      データ同期インスタンスの同期トポロジ。 双方向同期 を選択します。

      [Exactly-Once] を有効化し書き込みを実行するかどうか

      Exactly-Once書き込み機能を有効にするかどうかを指定します。 同期するオブジェクトに、プライマリキーとUNIQUE制約がないテーブルが含まれている場合は、 を選択します。 詳細については、「プライマリキーまたはUNIQUE制約なしのテーブルの同期」をご参照ください。

      DDL 操作を除外

      • Yes: DDL操作を除外します。

      • No: DDL操作を同期します。

        重要

        DDL操作は、ソースデータベースからターゲットデータベースへの順方向でのみ同期できます。 DDL操作は、ターゲットデータベースからソースデータベースへの逆方向では無視されます。 したがって、このパラメーターは、タスクを順方向に設定した場合にのみ表示されます。

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

      実際のビジネス要件に基づいて、適切な競合解決ポリシーを選択します。 DTSが検出できる競合の種類の詳細については、「サポートされている競合検出」をご参照ください。

      • タスク失敗

        データ同期中に競合が発生した場合、データ同期タスクはエラーを報告し、プロセスを終了します。 タスクが失敗状態になり、競合を手動で解決する必要があります。

      • 無視する

        データ同期中に競合が発生した場合、データ同期タスクは現在のステートメントを無視してプロセスを続行します。 宛先データベース内の競合するレコードが使用されます。

      • 上書き

        データ同期中に競合が発生した場合、ターゲットデータベース内の競合するレコードは上書きされます。

      説明

      データ同期タスクを一時停止または再起動するときにレイテンシが発生した場合、選択した競合解決ポリシーはレイテンシの間は有効になりません。 デフォルトでは、同期先データベースのデータは、遅延中に同期されたデータによって上書きされます。

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

      • エラーの事前チェックと報告: ターゲットデータベースに、ソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかを確認します。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合は、事前チェックに合格します。 それ以外の場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。

        説明

        ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれていて、ターゲットデータベース内のテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期されるテーブルの名前を変更できます。 詳細については、「マップオブジェクト名」をご参照ください。

      • エラーを無視して続行: ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

        • ソースデータベースとターゲットデータベースが同じスキーマを持ち、ターゲットデータベースのデータレコードがソースデータベースのデータレコードと同じ主キー値または一意キー値を持つ場合:

          • 完全データ同期中、DTSはデータレコードをターゲットデータベースに同期しません。 ターゲットデータベースの既存のデータレコードが保持されます。

          • 増分データ同期中、DTSはデータレコードをターゲットデータベースに同期します。 ターゲットデータベースの既存のデータレコードが上書きされます。

        • ソースデータベースとターゲットデータベースのスキーマが異なる場合、データの初期化に失敗する可能性があります。 この場合、一部の列のみが同期されるか、データ同期タスクが失敗します。 作業は慎重に行ってください。

      ソースオブジェクト

      ソースオブジェクト セクションから1つ以上のオブジェクトを選択し、向右アイコンをクリックして 選択中のオブジェクト セクションにオブジェクトを追加します。

      説明

      同期するオブジェクトとして、列、テーブル、またはデータベースを選択できます。 同期するオブジェクトとしてテーブルまたは列を選択した場合、DTSはビュー、トリガー、ストアドプロシージャなどの他のオブジェクトをターゲットデータベースに同期しません。

      選択中のオブジェクト

      • 同期先のインスタンスに同期するオブジェクトの名前を変更するには、選択中のオブジェクト セクションでオブジェクトを右クリックします。 詳細については、「オブジェクト名のマップ」トピックの「単一オブジェクトの名前のマップ」セクションをご参照ください。

      • 一度に複数のオブジェクトの名前を変更するには、選択中のオブジェクト セクションの右上隅にある 一括編集 をクリックします。 詳細については、「オブジェクト名のマップ」トピックの「一度に複数のオブジェクト名をマップする」セクションをご参照ください。

      説明
      • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの同期が失敗する可能性があります。

      • 特定のデータベースまたはテーブルで実行されるSQL操作の選択、フィルター条件の設定、ターゲットテーブルへの列の追加、または増分データ同期用の個別の競合修復ポリシーの設定を行うには、次の手順を実行します。選択中のオブジェクト セクションで、オブジェクトを右クリックします。 表示されるダイアログボックスで、ビジネス要件に基づいてパラメーターを設定します。 詳細については、「フィルター条件の設定」、「同期可能なSQL操作」、「ターゲットテーブルへの追加の列の追加」、および「独立した競合解決ポリシーの設定」をご参照ください。

    2. 次へ:詳細設定 をクリックして詳細設定を設定します。

      パラメーター

      説明

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

      デフォルトでは、DTSはタスクを共有クラスターにスケジュールします。 このパラメーターを設定する必要はありません。 データ同期タスクの安定性を向上させたい場合は、専用クラスターを購入してください。 詳細については、「DTS専用クラスターの概要」をご参照ください。

      移行先データベースのエンジンタイプを選択します。

      ターゲットデータベースのエンジンタイプ。 ビジネス要件に基づいてエンジンタイプを選択します。 有効な値:

      • InnoDB: デフォルトのストレージエンジン。

      • X-Engine: オンライントランザクション処理 (OLTP) データベースストレージエンジン。

      移行元テーブルで生成された Online DDL ツールの一時テーブルを移行先データベースにコピーします。

      DMSまたはgh-ostツールを使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルのデータを同期するかどうかを指定できます。

      重要

      pt-online-schema-changeなどのツールを使用して、ソースデータベースでオンラインDDL操作を実行することはできません。 それ以外の場合、DTSタスクは失敗します。

      • Yes: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期します。

        説明

        オンラインDDL操作が大量のデータを生成する場合、データ同期タスクが完了するまでに長時間かかることがあります。

      • いいえ、DMSオンラインDDLに適応: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期しません。 DMSを使用して実行された元のDDL操作のみが同期されます。

        説明

        このオプションを選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。

      • No, Adapt to gh-ost: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期しません。 gh-ostツールを使用して実行された元のDDL操作のみが同期されます。 デフォルトまたはカスタムの正規表現を使用して、gh-ostツールのシャドウテーブルと不要なテーブルを除外できます。

        説明

        このオプションを選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。

      アカウントを移行

      ソースデータベースのアカウント情報を同期するかどうかを指定します。 このパラメーターは、ビジネス要件に基づいて設定できます。 [はい] を選択した場合、同期するアカウントを選択し、アカウントを使用してログオンできるホストを指定し、アカウントの権限を確認する必要があります。 詳細については、「データベースアカウントの移行」をご参照ください。

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

      失敗した接続のリトライ時間範囲。 データ同期タスクの開始後にソースデータベースまたはターゲットデータベースの接続に失敗した場合、DTSはその時間範囲内ですぐに接続を再試行します。 有効な値: 10 ~ 1440 単位は分です。 デフォルト値: 720 このパラメーターを30より大きい値に設定することを推奨します。 DTSが指定された時間範囲内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。

      説明
      • ソースまたはターゲットデータベースが同じである複数のデータ同期タスクに対して異なるリトライ時間範囲を指定した場合、最も短いリトライ時間範囲が優先されます。

      • DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 業務要件に基づいて再試行時間範囲を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

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

      その他の問題の再試行時間範囲。 たとえば、データ同期タスクの開始後にDDLまたはDML操作の実行に失敗した場合、DTSはその時間範囲内ですぐに操作を再試行します。 有効な値: 1 ~ 1440 単位は分です。 デフォルト値は 10 です。 このパラメーターを10より大きい値に設定することを推奨します。 指定された時間範囲内で失敗した操作が正常に実行されると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。

      重要

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

      完全移行率を制限するかどうか

      完全データ同期中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定して、ターゲットデータベースサーバーの負荷を軽減できます。

      説明

      このパラメーターは、同期タイプ パラメーターで 完全データ同期 が選択されている場合にのみ表示されます。

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

      増分データ同期のスロットリングを有効にするかどうかを指定します。 ビジネス要件に基づいて、増分データ同期のスロットリングを有効にできます。 スロットリングを設定するには、1 秒あたりの増分同期の行数 RPSおよび1 秒あたりの増分同期データ量 (MB) BPS パラメーターを設定する必要があります。 これにより、移行先データベースサーバーの負荷が軽減されます。

      順方向および逆方向タスクのハートビートテーブル sql を削除

      DTSインスタンスの実行中に、ハートビートテーブルのSQL操作をソースデータベースに書き込むかどうかを指定します。 有効な値:

      • Yes: ハートビートテーブルにSQL操作を書き込みません。 この場合、DTSインスタンスのレイテンシが表示され得る。

      • No: ハートビートテーブルにSQL操作を書き込みます。 この場合、ソースデータベースの物理バックアップやクローニングなどの機能が影響を受ける可能性があります。

      環境タグ

      DTSインスタンスを識別するために使用される環境タグ。 ビジネス要件に基づいて環境タグを選択できます。 この例では、このパラメーターを設定する必要はありません。

      ETL の設定

      抽出、変換、および読み込み (ETL) 機能を有効にするかどうかを指定します。 詳細については、「ETLとは何ですか? 」をご参照ください。有効な値:

      監視アラート

      データ同期タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、同期レイテンシが指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:

    3. [次のステップ: データ検証] をクリックしてデータ検証を設定します。

      データ検証機能の使用方法の詳細については、「データ検証タスクの設定」をご参照ください。

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

    • 関連するAPI操作を呼び出してDTSタスクを設定するときに指定するパラメーターを表示するには、ポインターを 次:タスク設定の保存と事前チェック に移動し、OpenAPI パラメーターのプレビュー をクリックします。

    • パラメーターを表示または表示する必要がない場合は、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • データ同期タスクを開始する前に、DTSは事前チェックを実行します。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。

    • データ同期タスクが事前チェックに失敗した場合は、失敗した各項目の横にある [詳細の表示] をクリックします。 チェック結果に基づいて原因を分析した後、問題のトラブルシューティングを行います。 次に、プレチェックを再実行します。

    • 事前チェック中にアイテムに対してアラートがトリガーされた場合:

      • アラートアイテムを無視できない場合は、失敗したアイテムの横にある [詳細の表示] をクリックして、問題のトラブルシューティングを行います。 次に、もう一度プレチェックを実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。 次に、[再度事前チェック] をクリックして、事前チェックを再度実行します。 アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

  9. 成功率100% になるまで待ちます。 次に、[次へ: インスタンスの購入] をクリックします。

  10. データ同期インスタンスを購入します。

    1. 購入ページで、データ同期インスタンスの課金方法とインスタンスクラスのパラメーターを設定します。 下表にパラメーターを示します。

      セクション

      パラメーター

      説明

      新しいインスタンスクラス

      Billing Method

      • サブスクリプション: データ同期インスタンスの作成時にサブスクリプションの料金を支払います。 サブスクリプションの課金方法は、長期使用の場合、従量課金の課金方法よりも費用対効果が高くなります。

      • 従量課金: 従量課金インスタンスは1時間ごとに課金されます。 従量課金方法は、短期使用に適しています。 従量課金データ同期インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。

      リソースグループの設定

      データ同期インスタンスが属するリソースグループ。 デフォルト値: Default resource group 詳細については、「リソース管理とは 」をご参照ください。

      インスタンスクラス

      DTSは、同期速度が異なるインスタンスクラスを提供します。 ビジネス要件に基づいてインスタンスクラスを選択できます。 詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。

      サブスクリプション期間

      サブスクリプションの課金方法を選択した場合は、サブスクリプション期間と作成するデータ同期インスタンスの数を指定します。 サブスクリプション期間は、1〜9か月、1年、2年、3年、または5年とすることができる。

      説明

      このパラメーターは、サブスクリプション の課金方法を選択した場合にのみ使用できます。

    2. データ伝送サービス (従量課金) サービス規約を読んで選択します。

    3. [購入して開始] をクリックします。 表示されるダイアログボックスで、OK をクリックします。

      タスクリストでタスクの進行状況を確認できます。

  11. データ同期タスクを逆方向に設定します。

    1. 最初の同期が完了し、順方向のデータ同期タスクのステータス実行中に変わるまで待ちます。

    2. 逆方向のデータ同期タスクを見つけ、タスクの設定 をクリックします。

    3. データ同期タスクを逆方向に設定するには、手順5から手順8を繰り返します。

      重要
      • 逆同期タスクを設定するときは、正しいソースインスタンスとターゲットインスタンスを選択してください。 逆方向のソースインスタンスは、順方向の宛先インスタンスである。 逆方向の宛先インスタンスは、順方向のソースインスタンスである。 データベース名、アカウント、パスワードなどのパラメーター設定が有効であることを確認してください。

      • データ同期タスクのソースデータベースとターゲットデータベースを逆方向に設定する場合、インスタンスのリージョンパラメーターは変更できません。 逆方向のデータ同期タスクのために構成するパラメータの数は、順方向のデータ同期タスクのためのものより少ない。 コンソールに表示されるパラメーターを設定します。

      • 逆方向の同期タスクに対して競合するテーブルの処理モードを設定する場合、順方向の同期先インスタンスに同期されたテーブルが無視されることを確認します。

      • データ同期タスクの 選択中のオブジェクト リストのオブジェクトを順方向に選択し、データ同期タスクを逆方向に選択することはできません。

      • データ同期タスクを逆方向に設定する場合は、オブジェクト名マッピング機能を使用しないことをお勧めします。 DDL 操作を実行すると、データの不整合が発生する可能性があります。

    4. 成功率100% になるまで待ちます。 戻る をクリックします。

  12. 順方向と逆方向の両方の同期タスクのステータス実行中に変わるまで待ちます。 これは、双方向データ同期の設定が完了したことを示します。

独立した競合解決ポリシーの設定

説明

独立した競合解決ポリシーは、増分データ同期に対してのみ設定できます。

  1. 選択中のオブジェクト セクションで、同期するデータベースまたはテーブルを右クリックします。

  2. 独立した競合解決ポリシーを有効にします。

    • データベースレベルの競合解決ポリシー

      1. 表示されるダイアログボックスの 個別の競合修復ポリシー セクションで、独立した競合解決ポリシーを有効にするかどうか に設定します。

      2. 競合修復ポリシー の値を選択します。

        • タスク失敗

          データ同期中に競合が発生した場合、データ同期タスクはエラーを報告し、プロセスを終了します。 タスクが失敗状態になり、競合を手動で解決する必要があります。

        • 無視する

          データ同期中に競合が発生した場合、データ同期タスクは現在のステートメントを無視してプロセスを続行します。 宛先データベース内の競合するレコードが使用されます。

        • 上書き

          データ同期中に競合が発生した場合、ターゲットデータベース内の競合するレコードは上書きされます。

        • UseMax

          データ同期中に競合が発生した場合、競合する列の2つのレコードが比較され、より大きな値を表すレコードがターゲットデータベースに書き込まれます。 このレコードが存在しない場合、またはこのレコードのフィールドタイプが要件を満たしていない場合、UseMaxの効果はOverwriteの効果と同等です。

        • UseMin

          データ同期中に競合が発生した場合、競合する列の2つのレコードが比較され、小さい値を表すレコードがターゲットデータベースに書き込まれます。 このレコードが存在しない場合、またはこのレコードのフィールドタイプが要件を満たしていない場合、UseMinの効果はIgnoreの効果と同等です。

      3. 列名 フィールドに、独立した競合解決ポリシーが適用される列の名前を入力します。

        説明
        • オブジェクト名マッピング機能を使用して列の名前を変更した場合は、新しい列名を入力します。

        • 競合検出列 の右側にある 列の追加 をクリックすると、独立した競合解決ポリシーが適用される列を追加できます。

    • テーブルレベルの競合解決ポリシー

      1. 表示されるダイアログボックスの [列] セクションで、個別の競合修復ポリシー を選択します。

      2. 競合検出列 列で、独立した競合解決ポリシーが適用される列を選択します。

        説明
        • デフォルトでは、主キーとUNIQUE制約を持つ列が選択されます。

        • グローバル競合解決ポリシーは、独立した競合解決ポリシーが指定されている列には適用されません。

      3. 競合修復ポリシー の値を選択します。

        説明

        競合検出列 の値がシステムによって自動的に選択されている場合、競合解決ポリシーとしてUseMaxまたはUseMinを選択することはできません。

        • タスク失敗

          データ同期中に競合が発生した場合、データ同期タスクはエラーを報告し、プロセスを終了します。 タスクが失敗状態になり、競合を手動で解決する必要があります。

        • 無視する

          データ同期中に競合が発生した場合、データ同期タスクは現在のステートメントを無視してプロセスを続行します。 宛先データベース内の競合するレコードが使用されます。

        • 上書き

          データ同期中に競合が発生した場合、ターゲットデータベース内の競合するレコードは上書きされます。

        • UseMax

          データ同期中に競合が発生した場合、競合する列の2つのレコードが比較され、より大きな値を表すレコードがターゲットデータベースに書き込まれます。 このレコードが存在しない場合、またはこのレコードのフィールドタイプが要件を満たしていない場合、UseMaxの効果はOverwriteの効果と同等です。

        • UseMin

          データ同期中に競合が発生した場合、競合する列の2つのレコードが比較され、小さい値を表すレコードがターゲットデータベースに書き込まれます。 このレコードが存在しない場合、またはこのレコードのフィールドタイプが要件を満たしていない場合、UseMinの効果はIgnoreの効果と同等です。

  3. [OK] をクリックします。