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

Data Transmission Service:RDS MySQL 変更追跡タスクを作成する

最終更新日:Mar 18, 2025

変更追跡機能を使用すると、ソースデータベースからの増分データをリアルタイムで監視できるため、軽量キャッシュの更新、ビジネスプロセスの非同期でのデカップリング、ETL ロジックを使用したデータのリアルタイム同期などのタスクが容易になります。このトピックでは、RDS for MySQL 変更追跡タスクを作成する方法について説明します。

前提条件

注意事項

種類

説明

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

  • 追跡対象のテーブルには、プライマリキーまたは一意制約が必要です。また、フィールドは一意である必要があります。そうでない場合、重複データが追跡される可能性があります。

  • 追跡対象のオブジェクトとしてテーブルを選択した場合、1 つの変更追跡タスクで最大 500 のテーブルを追跡できます。この制限を超えると、タスクの送信後にリクエストエラーが発生します。この場合、テーブルを分割して複数の変更追跡タスクを構成するか、データベース全体に対して変更追跡タスクを構成することをお勧めします。

  • バイナリログ:

    • RDS for MySQL インスタンスでは、バイナリログはデフォルトで有効になっています。インスタンスパラメータを確認して、binlog_row_image パラメータが full に設定されていることを確認する必要があります。そうでない場合、事前チェックフェーズでエラーが報告され、変更追跡タスクを正常に開始できません。

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

      説明
      • ローカルログ保存期間は、RDS MySQL インスタンスのバイナリログの保存期間です。

      • 自己管理 MySQL データベースの構成ファイル(通常は my.cnf または my.ini)の binlog_expire_log_days パラメータは、バイナリログの保存期間です。

  • ソースインスタンスが読み取り専用インスタンスまたは一時インスタンスの場合、インスタンスにトランザクションを記録するログがあることを確認する必要があります。

    説明
    • RDS コンソールで、RDS for MySQL インスタンスが 読み取り専用インスタンス一時インスタンスかを確認できます。

    • 自己管理 MySQL データベースでは、SHOW VARIABLES LIKE 'read_only'; コマンドを実行します。返された結果が ON の場合、データベースは読み取り専用インスタンスです。

その他の制限

  • FLOAT 型または DOUBLE 型の列に対する DTS のサブスクリプション精度がビジネス要件を満たしていることを確認します。DTS は、ROUND(COLUMN,PRECISION) を使用してこれらの列の値を読み取ります。精度が明示的に定義されていない場合、FLOAT の DTS のサブスクリプション精度は 38 桁、DOUBLE の DTS のサブスクリプション精度は 308 桁です。

  • pt-online-schema-change などのツールによって実行されるオンライン DDL 変更は追跡されません。クライアントが消費されたデータをデスティネーションテーブルに書き込むと、テーブル構造の不整合が原因で書き込み操作が失敗する可能性があります。

  • 追跡する 1 行のデータが 16 MB を超える場合、データは消費できません。そうでない場合、コンシューマークライアントのメモリが不足する可能性があります(OOM)。

  • DTS タスクの実行に失敗した場合、DTS テクニカルサポートは 8 時間以内にタスクの復元を試みます。復元中、タスクが再起動され、タスクのパラメータが変更される可能性があります。

    説明

    パラメータを調整する場合、インスタンスのパラメータのみが変更されます。データベース内のパラメータは変更されません。

手順

  1. 変更追跡タスクページに移動します。

    1. Data Management (DMS) コンソール にログオンします。

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

    3. [DTS (DTS)] > [変更追跡] を選択します。

    説明
  2. タスクの作成 をクリックして、タスク構成ページに移動します。

  3. ソースデータベースとコンシューマーネットワークの種類のセクションでパラメータを構成します。

    警告

    ソースデータベースインスタンスを指定した後、ページの上部に表示される [制限] を読むことをお勧めします。そうでない場合、タスクが失敗したり、追跡されたデータが消費されない可能性があります。

    カテゴリ

    構成

    説明

    なし

    タスク名

    変更追跡タスクの名前。DTS はタスクに自動的に名前を割り当てます。タスクを識別しやすい説明的な名前を指定することをお勧めします。一意のタスク名を使用する必要はありません。

    ソースデータベース

    既存の接続情報の選択

    データベースタイプ

    [mysql] を選択します。

    アクセス方法

    [クラウドインスタンス] を選択します。

    インスタンスリージョン

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

    Alibaba Cloudアカウント全体でのデータの複製

    この例では、× を選択します。

    重要

    アカウント間でソースデータベースリソースにアクセスする必要がある場合( を選択)、DTS タスクを作成する Alibaba Cloud アカウントの RAM 認証を構成し、Alibaba Cloud アカウントRAM ロール名 を入力します。RAM 認証の構成の詳細については、「Alibaba Cloud アカウント間のタスクに RAM 認証を構成する方法」をご参照ください。

    [RDS インスタンス ID]

    RDS for MySQL インスタンス ID を選択します。

    データベースアカウント

    RDS for MySQL データベースの [読み取り専用アカウント]、または [REPLICATION CLIENT][REPLICATION SLAVE][SHOW VIEW][SELECT] 権限を持つカスタムアカウントを入力します。

    データベースパスワード

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

    暗号化

    データベースインスタンスへの接続を暗号化するかどうかを指定します。要件に基づいて、[暗号化なし] または [SSL 暗号化] を選択します。[SSL 暗号化] を選択した場合は、変更追跡タスクを構成する前に、ApsaraDB RDS for MySQL インスタンスの SSL 暗号化を有効にする必要があります。詳細については、「SSL 暗号化機能を構成する」をご参照ください。

    消費者ネットワークタイプ

    ネットワークタイプ

    [ネットワークの種類] パラメータの値は [VPC] に固定されています。[VPC][vswitch] を選択する必要があります。詳細については、「VPC」をご参照ください。

    説明
    • 変更追跡タスクが構成された後、[コンシューマーネットワークの種類] セクションの設定を変更することはできません。

    • 変更追跡クライアントが VPC にデプロイされている場合は、クライアントに接続されている同じ [VPC][vswitch] を選択することをお勧めします。

    • 内部ネットワークを介してデータの変更を追跡する場合、ネットワークレイテンシは最小限になります。

  4. 変更追跡のオブジェクトを構成します。

    1. オブジェクト設定 ページで、変更追跡のオブジェクトを構成します。

      構成

      説明

      データ変更タイプ

      データ変更タイプ はデフォルトで選択されており、変更できません。

      • [データ更新]

        DTS は、選択したオブジェクトのデータ更新(INSERT、DELETE、UPDATE 操作を含む)を追跡します。

      • [スキーマ更新]

        DTS は、ソースインスタンスのすべてのオブジェクトスキーマで実行される作成、削除、変更操作を追跡します。変更追跡クライアントを使用して、追跡するデータをフィルタリングする必要があります。

      ソースオブジェクト

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

      説明

      変更追跡のオブジェクトとして、テーブルまたはデータベースを選択できます。

      • オブジェクトとしてデータベースを選択すると、DTS はデータベース内の新しいオブジェクトを含むすべてのオブジェクトの増分データを追跡します。

      • オブジェクトとしてテーブルを選択すると、DTS はこのテーブルの増分データのみを追跡します。この場合、別のテーブルのデータ変更を追跡するには、そのテーブルをオブジェクトリストに追加する必要があります。詳細については、「変更追跡のオブジェクトを変更する」をご参照ください。

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

      構成

      説明

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

      デフォルトでは、DTS は共有クラスターにタスクをスケジュールします。このパラメータを構成する必要はありません。指定した仕様の専用クラスターを購入して、DTS 変更追跡タスクを実行できます。詳細については、「DTS 専用クラスターとは」をご参照ください。

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

      接続失敗時の再試行時間の範囲。変更追跡タスクが失敗した場合、DTS は時間範囲内で直ちに接続を再試行します。有効値: 10 ~ 1440。単位: 分。デフォルト値: 720。パラメータを 30 より大きい値に設定することをお勧めします。指定した時間範囲内に DTS がソースデータベースインスタンスに再接続されると、DTS は変更追跡タスクを再開します。そうでない場合、変更追跡タスクは失敗します。

      説明
      • データベースインスタンスに複数の変更追跡タスクが構成されている場合、最短の再試行時間の範囲が優先されます。たとえば、タスク A とタスク B が同じデータベースインスタンスに構成されているとします。タスク A は 30 分の再試行時間の範囲で構成され、タスク B は 60 分の再試行時間の範囲で構成されています。この場合、30 分の再試行時間の範囲が優先されます。

      • DTS が接続を再試行すると、料金が発生します。ビジネス要件に基づいて再試行時間の範囲を指定するか、ソースデータベースインスタンスが解放された後、できるだけ早く DTS インスタンスを解放することをお勧めします。

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

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

      重要

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

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

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

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

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

      環境タグ

      実際の状況に基づいてインスタンスを識別するために、環境タグを選択できます。この例では、このパラメータを構成する必要はありません。

      監視アラート

      変更追跡タスクのアラートを有効にするかどうかを指定します。アラートが構成されていて、タスクが失敗した場合、またはレイテンシがしきい値を超えた場合、アラート通知が送信されます。有効値:

      • [いいえ]: アラートを有効にしません。

      • [はい]: アラートを有効にします。この場合、アラートのしきい値と アラート通知設定 も構成する必要があります。詳細については、「DTS タスクの作成時に監視とアラートを構成する」をご参照ください。

  5. ページの下部にある [次へ: タスク設定の保存と事前チェック] をクリックします。

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

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

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

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。エラーメッセージに基づいて問題をトラブルシューティングした後、事前チェックを再実行できます。

    • 事前チェック中に項目に対してアラートが生成された場合は、シナリオに基づいて次の操作を実行します。

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

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

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

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

    2. [購入] ページで、変更追跡インスタンスの課金方法を指定します。次の表にパラメータを示します。

      パラメータ

      説明

      課金方法

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

      • 従量課金: 従量課金インスタンスは時間単位で課金されます。短期使用の場合は、従量課金方法を選択することをお勧めします。従量課金インスタンスが不要になった場合は、インスタンスを解放してコストを削減できます。

      [リソースグループ設定]

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

      [変更追跡インスタンスの課金タイプ]

      サブスクリプション課金方法を選択した場合、[元の価格の構成料金(データトラフィック料金無料)] のみを選択できます [変更追跡インスタンスの課金タイプ] パラメータ。

      [サブスクリプション期間]

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

      説明

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

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

    4. [購入して開始] をクリックして、変更追跡タスクを開始します。タスクの進行状況はタスクリストで確認できます。

次のステップ

変更追跡タスクが正常に実行されたら、コンシューマーグループを追加し、ダウンストリームクライアントに応じてデータ消費の方法を選択する必要があります。