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

Data Transmission Service:変更追跡タスクの設定

最終更新日:Oct 30, 2024

Data Transmission Service (DTS) を使用して、データベースからのデータ変更をリアルタイムで追跡できます。 次に、追跡されたデータを消費し、データをターゲットデータベースに書き込むことができます。 変更追跡機能は、キャッシュの更新、非同期ビジネスの分離、異種データソース間のデータ同期、抽出、変換、読み込み (ETL) 操作によるデータ同期などのシナリオで使用できます。 このトピックでは、DTS専用クラスターのApsaraDB RDS for MySQLインスタンスの変更追跡タスクを作成する方法について説明します。

前提条件

制限事項

カテゴリ

説明

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

  • ソーステーブルにはPRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでなければ、追跡されたデータ変更の一部が重複し得る。

  • 追跡するオブジェクトとしてテーブルを選択した場合、1回の変更追跡タスクで最大500のテーブルを追跡できます。 変更追跡タスクを実行して500を超えるテーブルを追跡すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルをバッチで追跡するか、データベース全体の変更追跡タスクを構成することをお勧めします。

  • バイナリログの次の要件を満たす必要があります。

    • binlog_row_imageパラメーターはfullに設定する必要があります。 詳細については、「ApsaraDB RDS For MySQLインスタンスのパラメーターの表示」をご参照ください。 それ以外の場合、事前チェック中にエラーメッセージが返され、変更追跡タスクを開始できません。

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

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

その他の制限

  • FLOATまたはDOUBLEデータ型の列の精度設定がビジネス要件を満たしていることを確認します。 DTSはROUND(COLUMN,PRECISION) 関数を使用して、FLOATまたはDOUBLEデータ型の列から値を取得します。 精度を指定しない場合、DTSはFLOATデータ型の列の精度を38桁に設定し、DOUBLEデータ型の列の精度を308桁に設定します。

  • DTSは、pt-online-schema-changeを使用して実行されるDDL操作を追跡しません。 したがって、変更追跡クライアントは、スキーマの競合により、消費されたデータを宛先テーブルに書き込むことができない場合があります。

  • 追跡する1行のデータのサイズが16 MBを超える場合、その行のデータを消費することはできません。 そうしないと、変更追跡クライアントでメモリ不足 (OOM) エラーが発生する可能性があります。

手順

  1. 専用クラスターページに移動します。

  2. 上部のナビゲーションバーで、ワークベンチ右側のドロップダウンリストからDTS専用クラスターを作成するリージョンを選択します。

  3. 変更追跡タスクを設定するDTS専用クラスターを見つけます。 [操作] 列で、[タスクの設定] > [変更トラッキングタスクの設定] を選択します。

  4. [ソースデータベース] セクションと [消費者ネットワークタイプ] セクションのパラメーターを設定します。

    警告

    ソースデータベースインスタンスを指定した後、ページの上部に表示される制限を読むことを推奨します。 そうしないと、タスクが失敗するか、追跡されたデータを消費できません。

    セクション

    パラメーター

    説明

    タスク名

    非該当

    変更追跡タスクの名前。 DTSはタスクに名前を自動的に割り当てます。 タスクを簡単に識別できるように、わかりやすい名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。

    ソースデータベース

    既存のデータベース接続を選択します。(任意です。データベース接続を作成していない場合は、このオプションを無視して、以下のセクションでデータベース設定を行ってください。)

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

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

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

    データベースタイプ

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

    アクセス方法

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

    インスタンスリージョン

    ソースApsaraDB RDS for MySQLインスタンスが存在するリージョンを選択します。 このパラメーターは、DTS専用クラスターの作成時に指定された値に設定され、変更できません。

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

    複数のAlibaba Cloudアカウント間でデータをレプリケートするかどうかを指定します。 値を × に設定します。

    RDS インスタンス ID

    ソースApsaraDB RDS for MySQLインスタンスのID。

    データベースアカウント

    ApsaraDB RDS for MySQLインスタンスに対する読み取り専用権限を持つデータベースアカウント、またはREPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、およびSELECT権限を持つカスタムアカウントを入力します。

    データベースパスワード

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

    暗号化

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

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

    ネットワークタイプ

    データの変更が追跡および消費されるネットワークタイプ。 Virtual Private Cloud (VPC) ネットワークタイプのみがサポートされています。 VPCvSwitchを選択します。

    説明

    変更追跡タスクを設定した後、ネットワークタイプを変更することはできません。 データ変更は、指定したネットワークタイプで追跡および消費する必要があります。

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

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

    警告

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

  6. 移行するオブジェクトと詳細設定を設定します。

    パラメーター

    説明

    データ変更の種類

    • データ更新

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

    • スキーマ更新

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

    ソースオブジェクト

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

    説明

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

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

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

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

    パラメーター

    説明

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

    デフォルトでDTS専用クラスターが選択されています。

    Set Alerts

    データ移行タスクのアラートを設定するかどうかを指定します。 タスクが失敗するか、移行の待ち時間が指定されたしきい値を超えると、アラート送信先は通知を受け取ります。 有効な値:

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

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

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

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

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

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

    重要

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

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

    ポインタを 次:タスク設定の保存と事前チェック に移動し、[OpenAPIパラメーターのプレビュー] をクリックして、インスタンスを設定するために呼び出されるAPI操作のパラメーター設定を表示します。

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

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

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

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

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

  9. 成功率が100% になるまで待ちます。 次に、次へ:DTS インスタンスタイプの選択 をクリックします。

  10. 新しいインスタンスクラス セクションで、タスクのインスタンスクラスを設定します。 最小1つのDTSユニット (DU) と最大残りの使用可能なDUを設定できます。

  11. [読み取り] チェックボックスをオンにして、[データ送信サービス (従量課金) サービス規約] に同意します。

  12. タスクの開始 をクリックして、変更追跡タスクを開始します。 クラスターの詳細ページに移動し、左側のナビゲーションウィンドウで [クラスタータスク一覧] をクリックして、タスクの進行状況を表示できます。

次のステップ

変更追跡タスクが実行されているときに、ダウンストリームクライアントに基づいてコンシューマグループを作成し、追跡されたデータを消費できます。

  1. コンシューマーグループを作成および管理します。 詳細については、「コンシューマーグループの作成」をご参照ください。

  2. 次のいずれかの方法を使用して、追跡データを消費します。