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

Data Transmission Service:MySQL データベース間の双方向同期

最終更新日:Jan 14, 2026

Data Transmission Service (DTS) は、MySQL データベース間の双方向データ同期をサポートしています。このトピックでは、ApsaraDB RDS for MySQL インスタンス間の双方向データ同期を設定する手順を例として説明します。

前提条件

制限事項

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

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

タイプ

説明

ソースおよびターゲットデータベースの制限事項

  • 同期するテーブルに主キー制約または一意制約がない場合は、タスクを設定する際に Exactly-Once 書き込み機能を有効にする必要があります。そうしないと、ターゲットデータベースに重複データが表示される可能性があります。詳細については、「主キーまたは一意制約のないテーブルの同期」をご参照ください。

  • テーブルレベルでデータを同期し、マッピングテーブルや列名などのオブジェクトを編集する必要がある場合、1 つのタスクで最大 1,000 テーブルを同期できます。この制限を超えると、タスクを送信した後にエラーが報告されます。この場合、テーブルを複数の同期タスクに分割するか、データベース全体を同期するタスクを設定します。

  • バイナリログ:

    • バイナリログは、RDS for MySQL インスタンスではデフォルトで有効になっています。binlog_row_image パラメーターを full に設定する必要があります。そうしないと、事前チェック中にエラーが報告され、データ同期タスクを開始できません。インスタンスパラメーターの設定方法の詳細については、「インスタンスパラメーターの設定」をご参照ください。

      重要
      • ソースインスタンスが自己管理 MySQL データベースの場合、バイナリログを有効にし、binlog_formatrow に、binlog_row_imagefull に設定する必要があります。

      • ソースの自己管理 MySQL データベースが、2 つのデータベースが互いにプライマリとセカンダリであるプライマリ/プライマリクラスターである場合、log_slave_updates パラメーターを有効にする必要があります。これにより、DTS がすべてのバイナリログを取得できるようになります。詳細については、「自己管理 MySQL データベースのデータベースアカウントを作成し、バイナリログを構成する」をご参照ください。

    • ApsaraDB RDS for MySQL インスタンスではバイナリログを少なくとも 3 日間 (7 日間を推奨)、自己管理 MySQL データベースでは少なくとも 7 日間保持してください。そうしないと、DTS がバイナリログを取得できないため、DTS タスクが失敗する可能性があります。極端な場合、データ不整合やデータ損失が発生する可能性があります。必要な期間よりも短いバイナリログ保持期間に起因する問題は、DTS のサービスレベル契約 (SLA) の対象外です。

      説明

      ApsaraDB RDS for MySQL インスタンスのバイナリログの 保持期間 の設定方法の詳細については、「ローカルログの自動削除」をご参照ください。

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

    説明

    完全同期フェーズ中、DTS はソースデータベースをクエリし、メタデータロックを取得します。これにより、ソースデータベースでの DDL 操作がブロックされる可能性があります。

  • 同期中、DTS はバイナリログに記録されていないデータ変更 (物理バックアップから復元されたデータやカスケード操作によって生成されたデータなど) を同期しません。

    説明

    これが発生した場合、ビジネスで許可されていれば、データを含むデータベースまたはテーブルを同期オブジェクトから削除し、再度追加することができます。詳細については、「同期オブジェクトの変更」をご参照ください。

  • 同期対象として指定されたソースおよびターゲットデータベースのテーブルに不可視列がないことを確認してください。そうしないと、DTS インスタンスが失敗したり、データ損失が発生したりする可能性があります。

    説明

    ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; を実行して、不可視列を可視化します。詳細については、「Invisible Columns」をご参照ください。

その他の制限事項

  • 互換性を確保するために、ソースデータベースとターゲットデータベースのバージョンを同じにするか、古いバージョンから新しいバージョンにデータを同期することを推奨します。新しいバージョンから古いバージョンにデータを同期すると、データベースの互換性の問題が発生する可能性があります。

  • 複数のテーブルのマージなど、ソースデータベースで一時テーブルを使用するオンライン DDL 操作を実行すると、ターゲットデータベースでデータ損失が発生したり、同期タスクが失敗したりする可能性があります。

  • DTS は、コメント構文を使用して定義されたパーサの同期をサポートしていません。

  • 同期タスクの実行中に主キーまたは一意キーの競合が発生した場合:

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

      • 完全データ同期中、DTS はターゲットレコードを保持し、ソースレコードをスキップします。

      • 増分同期中、DTS はターゲットレコードをソースレコードで上書きします。

    • テーブルスキーマが一致しない場合、データ初期化が失敗する可能性があります。これにより、部分的なデータ同期のみ、または完全な同期失敗が発生する可能性があります。注意して使用してください。

  • DTS が提供するスキーマ同期機能を使用しない場合は、列の互換性を確保する必要があります。そうしないと、タスクが失敗したり、データ損失が発生したりする可能性があります。たとえば、ソーステーブルの列が text 型で、ターゲット列が varchar(255) 型の場合、ソーステーブルにラージオブジェクトが含まれているとデータが切り捨てられる可能性があります。

  • 双方向同期タスクの実行中、DTS はデータループ同期を防ぐために、正方向および逆方向タスクのターゲットデータベースに dts という名前のデータベースを作成します。タスクの実行中は、このデータベースを変更せず、タスクが使用するデータベースアカウントがこのデータベースに対する読み取りおよび書き込み権限を持っていることを確認してください。

    説明

    dts データベースは、MySQL の通常のプライマリ/セカンダリ同期に影響を与える可能性があります。セカンダリデータベースに dts データベースとその関連テーブルが存在するかどうかを確認することを推奨します。存在しない場合は、プライマリデータベースの dts データベースのスキーマに基づいて、セカンダリデータベースに手動で作成する必要があります。

  • 同期するデータに、珍しい文字や絵文字など、4 バイトのストレージを必要とするコンテンツが含まれている場合、ターゲットデータベースとテーブルは utf8mb4 文字セットを使用する必要があります。

    説明

    スキーマ同期に DTS を使用する場合、ターゲットデータベースでインスタンスレベルのパラメーター character_set_server を utf8mb4 に設定する必要があります。

  • データを同期する前に、ソースおよびターゲットデータベースのパフォーマンスを評価してください。オフピーク時にデータを同期することを推奨します。そうしないと、初期完全データ同期がソースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費し、データベースの負荷が増加する可能性があります。

  • 初期完全データ同期は同時 INSERT 操作を実行するため、ターゲットテーブルに断片化が発生します。その結果、初期完全データ同期が完了した後、ターゲットインスタンスの表領域はソースインスタンスの表領域よりも大きくなります。

  • データベース全体ではなく 1 つ以上のテーブルを同期する場合、pt-online-schema-change などのツールを使用してソースデータベースの同期オブジェクトに対してオンライン DDL 操作を実行しないでください。そうしないと、同期が失敗します。

    Data Management (DMS) を使用してオンライン DDL 操作を実行できます。詳細については、「テーブルをロックせずにスキーマを変更する」をご参照ください。

  • デフォルトでは、DTS はターゲットデータベースにデータを同期する際に外部キー制約を削除します。そのため、ソースデータベースでの削除などのカスケード操作はターゲットデータベースに同期されません。

  • 双方向同期インスタンスには、正方向タスクと逆方向タスクが含まれます。双方向同期インスタンスを設定またはリセットするときに、一方のタスクのターゲットオブジェクトがもう一方のタスクのソースオブジェクトである場合:

    • 1 つのタスクのみが完全データと増分データを同期できます。もう一方のタスクは増分データのみを同期できます。

    • 現在のタスクのソースデータは、現在のタスクのターゲットにのみ同期できます。同期されたデータは、もう一方のタスクのソースデータとして使用されません。

  • DDL 文がターゲットデータベースへの書き込みに失敗した場合、DTS タスクは実行を継続します。失敗した DDL 文については、タスクログを確認する必要があります。タスクログの表示方法の詳細については、「タスクログの表示」をご参照ください。

  • 大文字と小文字のみが異なるソーステーブルの列が同じターゲット MySQL テーブルに同期される場合、MySQL の列名は大文字と小文字を区別しないため、同期結果が期待どおりにならないことがあります。

  • データ同期が完了した後 (インスタンスの ステータス完了 になった後)、analyze table <table_name> を実行して、すべてのデータがターゲットテーブルに書き込まれたことを確認することを推奨します。たとえば、ターゲット MySQL データベースで HA スイッチオーバーがトリガーされた場合、データがメモリにのみ書き込まれ、データ損失が発生する可能性があります。

  • RDS MySQL インスタンスで常時機密データベース (EncDB) 機能が有効になっている場合、完全データ同期はサポートされていません。

    説明

    TDE (透過的データ暗号化) が有効になっている RDS for MySQL インスタンスでは、スキーマ同期、完全データ同期、および増分データ同期がサポートされています。

  • ソースデータベースからアカウントを同期するには、前提条件を満たし、関連する考慮事項を理解する必要もあります。詳細については、「データベースアカウントの移行」をご参照ください。

  • タスクが失敗した場合、DTS 技術サポートは 8 時間以内に回復を試みます。回復プロセス中に、タスクの再起動やパラメーターの調整などの操作が実行される場合があります。

    説明

    パラメーターが調整される場合、DTS タスクパラメーターのみが変更され、データベースパラメーターは変更されません。変更される可能性のあるパラメーターには、「インスタンスパラメーターの変更」で説明されているものが含まれますが、これらに限定されません。

特殊なケース

  • ソースデータベースが自己管理 MySQL データベースの場合:

    • 同期中にソースデータベースでプライマリ/セカンダリのスイッチオーバーが発生した場合、同期タスクは失敗します。

    • DTS の遅延は、ターゲットデータベースで最後に同期されたデータレコードのタイムスタンプと現在のタイムスタンプを比較することによって計算されます。ソースデータベースで長期間 DML 操作が実行されない場合、表示される遅延が不正確になることがあります。表示される遅延が大きすぎる場合は、ソースデータベースで DML 操作を実行して遅延情報を更新できます。

      説明

      データベース全体を同期することを選択した場合、ハートビートテーブルを作成することもできます。ハートビートテーブルは 1 秒ごとに更新または書き込みされます。

    • DTS は、バイナリログのオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行します。

    • ソースの自己管理 MySQL データベースが双方向同期タスクと他のタスクの両方に使用される場合、log_slave_updates=1 行を /etc/my.cnf ファイルに追加してからデータベースを再起動する必要があります。そうしないと、逆方向タスクからのデータ変更がソースの自己管理 MySQL データベースのバイナリログに記録されず、他のタスクでデータ不整合が発生します。

    • ソースデータベースが Amazon Aurora MySQL インスタンスまたは他のクラスターモードの MySQL インスタンスである場合、タスクに設定されたドメイン名または IP アドレスとその解決結果が常に読み書き (RW) ノードアドレスを指していることを確認してください。そうしないと、同期タスクが期待どおりに実行されない可能性があります。

  • ソースデータベースが RDS for MySQL インスタンスの場合:

    • RDS for MySQL 5.6 の読み取り専用インスタンスなど、トランザクションログを記録しない RDS for MySQL インスタンスはソースとしてサポートされていません。

    • DTS は、バイナリログのオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行します。

課金

同期タイプ

料金

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

無料。

増分データ同期

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

競合検出

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

DTS は、双方向同期タスクの安定性を最大限に高めるために、競合をチェックして修正します。DTS は、次の種類の競合を検出できます:

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

    双方向同期では、同じ主キーを持つレコードが両方のデータベースインスタンスに同時に (またはほぼ同時に) 挿入されると、一意性制約の競合がトリガーされます。INSERT 文がピアインスタンスに同期されると、同じ主キー値を持つレコードがすでに存在するため、失敗します。

  • UPDATE 操作でのレコードの不一致

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

    • UPDATE 操作によって更新されるレコードが、主キーまたは一意キーの競合を引き起こします。

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

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

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

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

サポートされる SQL

操作タイプ

SQL 文

DML

INSERT、UPDATE、DELETE

DDL

  • ALTER TABLE、ALTER VIEW

  • CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW

  • DROP INDEX、DROP TABLE

  • RENAME TABLE

    重要

    RENAME TABLE 操作はデータ不整合を引き起こす可能性があります。たとえば、同期オブジェクトが特定のテーブルのみで、同期中にソースインスタンスでテーブル名を変更した場合、そのテーブルのデータはターゲットデータベースに同期されません。この問題を回避するには、データ同期タスクを設定する際に、テーブルが属するデータベース全体を同期オブジェクトとして選択します。RENAME TABLE 操作の前後にテーブルが属するデータベースが両方とも同期オブジェクトに含まれていることを確認してください。

  • TRUNCATE TABLE

重要

DDL 操作は、ソースデータベースからターゲットデータベースへの正方向タスクでのみ同期できます。DDL 操作は、ターゲットデータベースからソースデータベースへの逆方向タスクではサポートされておらず、自動的に除外されます。

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

データベース

必要な権限

作成と権限付与

ソース ApsaraDB RDS for MySQL

ソースおよびターゲットデータベースに対する読み取りおよび書き込み権限。ApsaraDB RDS for MySQL インスタンスの特権アカウントは要件を満たしています。

アカウントの作成 および 特権アカウントの権限のリセット

ターゲット ApsaraDB RDS for MySQL

操作手順

  1. ターゲットリージョンのデータ同期タスクリストページに移動します。これには 2 つの方法があります。

    DTS コンソール

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

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

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

    DMS コンソール

    説明

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

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

    2. トップメニューバーで、データ + AI > DTS (DTS) > データ同期 を選択します。

    3. データ同期タスク の右側で、同期インスタンスのリージョンを選択します。

  2. タスクの作成 をクリックして、タスク設定ページを開きます。

  3. ソースデータベースとターゲットデータベースを設定します。

    警告

    ソースインスタンスと宛先インスタンスを選択した後、ページ上部の 制限事項 を確認してください。そうしないと、タスクが失敗したり、データ不整合が発生したりする可能性があります。

    カテゴリ

    パラメーター

    説明

    N/A

    タスク名

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

    移行元データベース

    既存の接続情報の選択

    • ドロップダウンリストから DTS に登録されたデータベースインスタンス を選択します。以下のデータベース情報は自動的に設定されます。

      説明

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

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

    データベースタイプ

    MySQL を選択します。

    アクセス方法

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

    インスタンスリージョン

    ソース RDS MySQL インスタンスが存在するリージョンを選択します。

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

    この例では、データベースインスタンスが現在の Alibaba Cloud アカウントに属しているため、× を選択します。

    RDS インスタンス ID

    ソース RDS MySQL インスタンスの ID を選択します。

    説明

    ソースとターゲットの RDS MySQL インスタンスは同じでも異なっていてもかまいません。DTS を使用して、2 つの RDS MySQL インスタンス間、または同じ RDS MySQL インスタンス内でデータを移行できます。

    データベースアカウント

    ソース RDS MySQL インスタンスの特権アカウントを入力します。

    データベースパスワード

    指定したデータベースアカウントのパスワードを入力します。

    暗号化

    必要に応じて 非暗号化 または SSL 暗号化 を選択します。これを SSL 暗号化 に設定する場合は、事前に RDS for MySQL インスタンスで SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL リンク暗号化を迅速に有効にする」をご参照ください。

    移行先データベース

    既存の接続情報の選択

    • ドロップダウンリストから DTS に登録されたデータベースインスタンス を選択します。以下のデータベース情報は自動的に設定されます。

      説明

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

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

    データベースタイプ

    MySQL を選択します。

    アクセス方法

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

    インスタンスリージョン

    ターゲット RDS MySQL インスタンスが存在するリージョンを選択します。

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

    この例では、データベースインスタンスが現在の Alibaba Cloud アカウントに属しているため、× を選択します。

    RDS インスタンス ID

    ターゲット RDS MySQL インスタンスの ID を選択します。

    データベースアカウント

    ターゲット RDS MySQL インスタンスの特権アカウントを入力します。

    データベースパスワード

    指定したデータベースアカウントのパスワードを入力します。

    暗号化

    必要に応じて 非暗号化 または SSL 暗号化 を選択します。これを SSL 暗号化 に設定する場合は、事前に RDS for MySQL インスタンスで SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL リンク暗号化を迅速に有効にする」をご参照ください。

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

    説明
    • アクセスを許可するために、DTS サーバーの CIDR ブロックを (自動または手動で) ソースとターゲットの両方のデータベースのセキュリティ設定に追加してください。詳細については、「DTS サーバーの IP アドレスホワイトリストを追加する」をご参照ください。

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

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

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

      パラメーター

      説明

      同期タイプ

      DTS は常に 増分データ同期 を選択します。デフォルトでは、スキーマ同期完全データ同期 も選択する必要があります。事前チェック後、DTS は選択したソースオブジェクトの完全データでターゲットクラスターを初期化し、これが後続の増分同期のベースラインとして機能します。

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

      必要に応じてトリガーを同期する方法を選択します。同期しているオブジェクトにトリガーが含まれていない場合、このパラメーターを設定する必要はありません。詳細については、「トリガーの同期または移行方法の設定」をご参照ください。

      説明

      このパラメーターは、同期タイプスキーマ同期 が選択されている場合にのみ使用できます。

      移行評価の有効化

      ソースデータベースとターゲットデータベースのスキーマ (インデックス長、ストアドプロシージャ、依存テーブルなど) が要件を満たしているかどうかを評価するかどうかを指定します。

      説明
      • このパラメーターは、同期タイプスキーマ同期 が選択されている場合にのみ使用できます。

      • を選択すると、事前チェック時間が増加する可能性があります。事前チェックフェーズ中に 評価結果 を表示できます。評価結果は事前チェック結果に影響しません。

      同期トポロジ

      双方向同期 を選択します。

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

      同期するオブジェクトに主キーまたは UNIQUE 制約のないテーブルが含まれている場合は、 を選択します。詳細については、「主キーまたは UNIQUE 制約のないテーブルの同期」をご参照ください。

      DDL 操作を除外

      • :DDL 操作を同期から除外します。

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

        重要

        双方向同期リンクの安定性を確保するために、ソースデータベースからターゲットデータベースへの正方向タスクに対して DDL 操作を同期するかどうかのみを選択できます。ターゲットデータベースからソースデータベースへの逆方向タスクは、DDL 操作を自動的に除外します。

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

      前述の 競合タイプ に遭遇した場合は、必要に応じて競合解決ポリシーを選択します。

      • TaskFailed (競合時に失敗してエラーを報告)

        競合が発生すると、タスクはエラーを出して停止します。タスクは失敗状態になり、回復には手動での介入が必要です。

      • Ignore (宛先インスタンスの既存のレコードを保持)

        システムは競合する文をスキップして同期を続行します。宛先インスタンスの既存のレコードが保持されます。

      • Overwrite (宛先インスタンスの競合するレコードを上書き)

        競合が発生した場合、システムは宛先インスタンスの競合するレコードをソースからのデータで上書きします。

      説明

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

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

      • エラーの事前チェックと報告:ターゲットデータベースに同じ名前のテーブルがあるかどうかをチェックします。同じ名前のテーブルが見つかった場合、事前チェック中にエラーが報告され、データ同期タスクは開始されません。それ以外の場合、事前チェックは成功します。

        説明

        ターゲットデータベースで同じ名前のテーブルを削除または名前変更できない場合は、ターゲットで別の名前にマッピングできます。詳細については、「オブジェクト名のマッピング」をご参照ください。

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

        警告

        エラーを無視して続行 を選択すると、データ不整合が発生し、ビジネスにリスクをもたらす可能性があります。例:

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

          • 完全データ同期中、DTS はターゲットレコードを保持し、ソースレコードをスキップします。

          • 増分同期中、DTS はターゲットレコードをソースレコードで上書きします。

        • テーブルスキーマが一致しない場合、データ初期化が失敗する可能性があります。これにより、部分的なデータ同期のみ、または完全な同期失敗が発生する可能性があります。注意して使用してください。

      イベントを移行するかどうか

      ソースデータベースのイベントを同期するかどうかを指定します。ビジネス要件に基づいてこのパラメーターを設定できます。はい を選択した場合は、関連する要件を満たし、後続の操作を完了する必要があります。詳細については、「イベントの同期または移行」をご参照ください。

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

      宛先インスタンスのデータベース、テーブル、および列名の大文字と小文字の区別ポリシーを設定します。デフォルトでは、DTS のデフォルトポリシー が選択されています。ソースまたはターゲットデータベースのデフォルトポリシーを使用することも選択できます。詳細については、「宛先オブジェクト名の大文字/小文字ポリシー」をご参照ください。

      ソースオブジェクト

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

      説明

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

      選択中のオブジェクト

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

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

      説明
      • SQL 操作:選択中のオブジェクト でオブジェクトを右クリックして SQL 操作を選択します。

      • データフィルター:選択中のオブジェクト でテーブルを右クリックして WHERE 条件を設定します。このパラメーターの設定方法の詳細については、「フィルター条件の設定」をご参照ください。

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

      • 増分同期のための 個別の競合修復ポリシー を設定するには、「独立した競合解決ポリシーの設定」をご参照ください。

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

      パラメーター

      説明

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

      デフォルトでは、DTS はタスクに共有クラスターを使用するため、選択する必要はありません。タスクの安定性を高めるために、DTS 同期タスクを実行するための専用クラスターを購入できます。詳細については、「DTS 専用クラスターとは」をご参照ください。

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

      ソースデータベースが Data Management (DMS) または gh-ost をオンライン DDL 変更に使用している場合、これらの操作中に生成される一時テーブルを同期するかどうかを選択します。

      重要

      DTS タスクは現在、pt-online-schema-change などのツールによって実行されるオンライン DDL 変更をサポートしていません。このようなツールを使用すると、DTS タスクは失敗します。

      • :オンライン DDL 変更によって生成された一時テーブルを同期します。

        説明

        オンライン DDL 変更によって生成された一時テーブルのデータが大きすぎると、同期遅延が発生する可能性があります。

      • いいえ、DMS オンライン DDL に適応:オンライン DDL 変更によって生成された一時テーブルを同期しません。代わりに、Data Management (DMS) で実行された元の DDL 文のみを同期します。

        説明

        このアプローチは、ターゲットデータベースでテーブルロックを引き起こします。

      • いいえ、gh-ost に適応:オンライン DDL 変更によって生成された一時テーブルを同期しません。代わりに、gh-ost によって実行された元の DDL 文のみを同期します。gh-ost のシャドウテーブルとトラッシュテーブルには、デフォルトまたはカスタムの正規表現を使用できます。

        説明

        このアプローチは、ターゲットデータベースでテーブルロックを引き起こします。

      アカウントを移行

      ソースデータベースからアカウントを同期するかどうかを選択します。 を選択した場合は、同期するアカウントを選択し、その権限を確認する必要もあります。権限付与方法などのトピックの詳細については、「データベースアカウントの移行」をご参照ください。

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

      同期タスク開始後にソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、直ちに接続のリトライを開始します。デフォルトのリトライ期間は 720 分です。リトライ時間は 10 分から 1,440 分の範囲でカスタマイズできます。30 分以上の期間を推奨します。この期間内に接続が回復した場合、タスクは自動的に再開されます。それ以外の場合、タスクは失敗します。

      説明
      • 複数の DTS インスタンス (例:インスタンス A と B) がソースまたはターゲットを共有している場合、DTS はすべてのインスタンスに対して設定された最も短いリトライ期間 (例:A は 30 分、B は 60 分なので、30 分が使用される) を使用します。

      • DTS は接続リトライ中のタスク実行時間に対して課金します。ビジネスニーズに基づいてカスタム期間を設定するか、ソース/ターゲットインスタンスをリリースした直後に DTS インスタンスを速やかにリリースしてください。

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

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

      重要

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

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

      完全データ同期中、DTS はソースおよびターゲットデータベースの読み取りおよび書き込みリソースを消費し、負荷を増加させる可能性があります。ターゲットデータベースへの圧力を軽減するために、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS を設定することで、移行レートを制限できます。

      説明
      • このパラメーターは、同期タイプ完全データ同期 に設定されている場合にのみ使用できます。

      • 同期インスタンスの実行中に 完全データ同期のレートを調整する こともできます。

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

      1 秒あたりの増分同期の行数 RPS1 秒あたりの増分同期データ量 (MB) BPS を設定することで、増分同期レートを制限してターゲットデータベースへの圧力を軽減することもできます。

      環境タグ

      インスタンスを識別するために環境タグを選択できます。この例では、タグは選択されていません。

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

      インスタンスの実行中に DTS がハートビート SQL 情報をソースデータベースに書き込むかどうかを選択します。

      • :ハートビート SQL 情報をソースデータベースに書き込みません。DTS インスタンスに遅延が表示される場合があります。

      • ×:ハートビート SQL 情報をソースデータベースに書き込みます。これは、物理バックアップやクローニングなどのソースデータベース操作に干渉する可能性があります。

      ETL 機能の設定

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

      監視アラート

      アラートを設定するかどうかを選択します。同期が失敗した場合、または遅延が指定されたしきい値を超えた場合、DTS はアラート連絡先に通知を送信します。

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

      データ検証機能を使用するには、「データ検証の設定」をご参照ください。

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

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

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

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

    • 事前チェックが失敗した場合は、失敗した項目の横にある 詳細を表示 をクリックし、プロンプトに従って問題を修正してから、事前チェックを再実行します。

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

      • 無視できない警告については、項目の横にある 詳細を表示 をクリックし、プロンプトに従って問題を修正してから、事前チェックを再実行します。

      • 無視できる警告については、アラートの詳細を確認、次に 無視、そして OK をクリックしてバイパスできます。最後に、再度事前チェックを実行 をクリックして警告をスキップし、事前チェックを再実行します。事前チェックの警告を無視すると、データ不整合やその他のビジネスリスクにつながる可能性があります。注意して進めてください。

  7. インスタンスを購入します。

    1. 成功率 が 100% に達したら、次:インスタンスの購入 をクリックします。

    2. 購入 ページで、データ同期インスタンスの課金方法と仕様を選択します。詳細については、次の表をご参照ください。

      カテゴリ

      パラメーター

      説明

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

      課金方法

      • サブスクリプション:インスタンス作成時にお支払いいただきます。長期的なニーズに適しており、従量課金よりも手頃で、サブスクリプション期間が長いほど割引率が高くなります。

      • 従量課金:時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。

      リソースグループの設定

      インスタンスが属するリソースグループ。デフォルトは デフォルトリソースグループ です。詳細については、「Resource Management とは」をご参照ください。

      リンク仕様

      DTS は、異なるパフォーマンスレベルの同期仕様を提供します。リンク仕様は同期レートに影響します。ビジネスシナリオに基づいて選択できます。詳細については、「データ同期リンク仕様」をご参照ください。

      同期トポロジ

      双方向同期 に固定されています。

      サブスクリプション期間

      サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。月次サブスクリプションでは 1〜9 か月、年次サブスクリプションでは 1、2、3、または 5 年から選択できます。

      説明

      このオプションは、課金方法が サブスクリプション の場合にのみ表示されます。

    3. Data Transmission Service (従量課金) 利用規約 のチェックボックスを読んで選択します。

    4. 購入して起動 をクリックし、OK ダイアログボックスで OK をクリックします。

      データ同期ページでタスクの進捗を監視できます。

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

    1. 正方向同期タスクの初期同期が完了するのを待ちます。タスクの ステータス実行中 に変わります。

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

    3. ステップ 3 から ステップ 6 に従って逆方向同期タスクを設定します。

      重要
      • 逆方向同期では、正方向タスクで使用したソースインスタンスと宛先インスタンスを入れ替えます。データベース名、アカウント、パスワードなど、すべての詳細が検証され、正しいことを確認してください。

      • 逆方向同期タスクのソースおよびターゲットデータベースの インスタンスのリージョン は変更できません。正方向同期タスクよりも必要なパラメーターは少なくなります。実際の設定オプションについては、コンソールをご参照ください。

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

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

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

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

  9. 逆方向同期タスクが設定された後、両方の同期タスクの ステータス実行中 になるのを待ちます。双方向データ同期の設定は完了です。