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

Data Transmission Service:変更追跡タスクに関する問題のトラブルシューティング

最終更新日:Nov 04, 2024

このトピックでは、変更追跡クライアントで専用のData Transmission Service (DTS) ツールキットを使用して、新しいバージョンの変更追跡タスクに関する問題をトラブルシューティングする方法について説明します。

背景情報

追跡されたデータがSDKを使用せずに消費され、SDKに多くの変更が加えられ、変更追跡クライアントが異なる環境で実行されるシナリオでは、変更追跡タスクの問題をトラブルシューティングすることは困難です。 DTSは、変更追跡タスクに関する問題のトラブルシューティングに役立つツールキットを提供します。

重要

ツールキットを使用すると、コンソールで指定されたコンシューマーグループのコンシューマーオフセットが更新されますが、SUBSCRIBEモードでサーバーに記録されたコンシューマーオフセットは更新されません。

前提条件

変更追跡クライアントにJava Development Kit (JDK) がインストールされています。 JDK 1.8以降のインストールを推奨します。

手順

  1. dts_subscribe_sdk_dep_demoツールキットをクライアントにダウンロードして解凍します。

  2. 次の表に示すパラメーターを設定して、設定ファイルconfigを変更します。

    表 1. 設定ファイルのパラメーター

    パラメーター

    説明

    パラメータ値を取得するメソッド

    brokerUrl

    変更追跡インスタンスのエンドポイントとポート番号。

    説明

    内部ネットワーク上のデータ変更を追跡する場合、ネットワーク遅延は最小限に抑えられます。 これは、SDKクライアントをデプロイするElastic Compute Service (ECS) インスタンスが、クラシックネットワークまたは変更追跡インスタンスと同じ仮想プライベートクラウド (VPC) に属している場合に適用されます。

    DTSコンソールで、インスタンスIDをクリックします。 [タスク管理] ページで、エンドポイントとポート番号を取得できます。 Endpoint

    トピック

    変更追跡インスタンスのトピックの名前。

    DTSコンソールで、インスタンスIDをクリックします。 [タスク管理] ページで、追跡対象のトピックを取得できます。 Topic

    sid

    コンシューマーグループの ID です。

    DTSコンソールで、インスタンスIDをクリックします。 左側のナビゲーションウィンドウで、[データの使用] をクリックします。 コンシューマーグループのIDとアカウントを取得できます。

    説明

    コンシューマーグループアカウントのパスワードは、コンシューマーグループの作成時に自動的に指定されます。

    Data consumption

    userName

    消費者グループのアカウント。

    警告

    このトピックで使用されているSDKクライアントを使用していない場合は、このパラメーターを <Username>-<Consumer group ID> の形式で指定する必要があります。 そうしないと、接続は失敗します。 例: dtstest-dtsae ****** bpv

    パスワード

    アカウントのパスワードを入力します。

    initCheckpoint

    消費者オフセット。 SDKクライアントが最初のデータレコードを消費する時間です。 この値は UNIX タイムスタンプです。 例: 1620962769。

    重要
    • このパラメーターは、subscribeModeパラメーターがASSIGNに設定され、isForceUseInitCheckpointパラメーターがtrueに設定されている場合にのみ有効になります。

    • コンシューマオフセットは、次のシナリオで使用できます。

      • 消費プロセスが中断された後、消費者オフセットを指定してデータ消費を再開できます。 これにより、データの損失を防ぐことができます。

      • 変更追跡クライアントを起動するときに、オンデマンドでデータを消費するための消費者オフセットを指定できます。

    コンシューマオフセットは、変更追跡インスタンスのデータ範囲内である必要があります。 次の図は、データ範囲を示しています。 コンシューマオフセットは、UNIXタイムスタンプに変換する必要があります。 Data range

    説明

    検索エンジンを使用して、UNIXタイムスタンプコンバーターを取得できます。

    subscribeMode

    SDKクライアントを使用するモード。 有効な値:

    • ASSIGN: コンシューマーグループに使用できるSDKクライアントは1つだけです。

    • SUBSCRIBE: 複数のSDKクライアントを使用して、コンシューマーグループでディザスタリカバリを実装できます。

    非該当

    isForceUseInitCheckpoint

    指定したオフセットを強制的に使用してデータ変更を追跡するかどうかを指定します。 有効な値は truefalse です。

    非該当

  3. ツールキットが解凍されているディレクトリで次のコマンドを実行します。

    java -jar dts_subscribe_sdk_dep_demo-1.0-SNAPSHOT-jar-with-dependencies.jar設定

  4. コマンドが実行されているディレクトリにあるdts-new-subscribe.logログファイルを表示します。 問題のトラブルシューティングについては、次の表を参照してください。

    ログデータ

    説明

    解決策

    [2022-01-04 17:10:53.949] [INFO ] 
    [com.aliyun.dts.subscribe.clients.recordprocessor.EtlRecordProcessor] 
    [com.aliyun.dts.subscribe.clients.recordprocessor.DefaultRecordPrintListener:49] -
    RecordID [13082769]
    RecordTimestamp [1641284702]
    Source [{"sourceType": "MySQL", "version": "5.6.16-log"}]
    RecordType [HEARTBEAT]

    変更追跡タスクは期待どおりに実行されています。

    非該当

    ERROR CheckResult{isOk=false, errMsg='telnet dts-cn-hangzhou.aliyuncs.com:18009 failed, please check the network and if the brokerUrl is correct'} (com.aliyun.dts.subscribe.clients.DefaultDTSConsumer)

    変更追跡インスタンスの指定されたエンドポイントが無効です。

    設定ファイルのbrokerUrlパラメーターに有効な値を指定します。

    telnet real node xxx failed, please check the network

    変更追跡インスタンスへの接続は確立できません。

    設定ファイルのbrokerUrlパラメーターに有効な値を指定します。

    ERROR CheckResult{isOk=false, errMsg='build kafka consumer failed, error: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata, probably the user name or password is wrong'} (com.aliyun.dts.subscribe.clients.DefaultDTSConsumer)

    指定されたユーザー名またはパスワードは無効です。

    設定ファイルのuserNameパラメーターとpasswordパラメーターに有効な値を指定します。

    com.aliyun.dts.subscribe.clients.exception.TimestampSeekException: RecordGenerator:seek timestamp for topic [cn_hangzhou_rm_bp11tv2923n87081s_rdsdt_dtsacct-0] with timestamp [1610249501] failed

    コンシューマオフセットが変更追跡インスタンスのデータ範囲内にないため、コンシューマオフセットが低下します。

    設定ファイルのinitCheckpointパラメーターに、変更追跡インスタンスのデータ範囲内の値を指定します。

    説明

    DStoreRecordQueueおよびDefaultUserRecordQueueパラメーターの値が0のままである場合、サーバーからのデータの読み取り速度は遅くなります。 これらのパラメータの値が512のままである場合、クライアントは追跡されたデータ変更を低速で消費する。