TiDB アップストリームおよびダウンストリーム クラスタのデータ チェック

TiDB Binlogを使用して、TiDB のアップストリームおよびダウンストリーム クラスターを構築できます。 Drainerがデータを TiDB にレプリケートすると、チェックポイントが保存され、上流と下流の間の TSO マッピング関係もts-mapとして保存されます。アップストリームとダウンストリーム間のデータを確認するには、sync-diff-inspector でsnapshotを設定します。

ステップ 1: ts-mapを取得する

ts-mapを取得するには、下流の TiDB クラスターで次の SQL ステートメントを実行します。

mysql> select * from tidb_binlog.checkpoint;
+---------------------+---------------------------------------------------------------------------------------------------------+
| clusterID           | checkPoint                                                                                              |
+---------------------+---------------------------------------------------------------------------------------------------------+
| 6711243465327639221 | {"commitTS":409622383615541249,"ts-map":{"primary-ts":409621863377928194,"secondary-ts":409621863377928345}} |
+---------------------+---------------------------------------------------------------------------------------------------------+

ステップ 2: スナップショットを構成する

ステップ1で取得したts-mapの情報を利用して、上流データベースと下流データベースのスナップショット情報を設定します。

Datasource configセクションの設定例を次に示します。

######################### Datasource config ########################
[data-sources.uptidb]
    host = "172.16.0.1"
    port = 4000
    user = "root"
    password = ""
    snapshot = "409621863377928194"

[data-sources.downtidb]
    host = "172.16.0.2"
    port = 4000
    user = "root"
    snapshot = "409621863377928345"

ノート:

  • Drainerのdb-typetidbに設定して、 ts-mapがチェックポイントに保存されるようにします。
  • TiKV のガベージ コレクション (GC) 時間を変更して、スナップショットに対応する履歴データがデータ チェック中に GC によって収集されないようにします。確認後、GC 時間を 1 時間に変更し、設定を元に戻すことをお勧めします。
  • TiDB Binlogの一部のバージョンでは、 master-tsslave-tsts-mapに格納されます。 master-tsprimary-tsに相当し、 slave-tssecondary-tsに相当します。
  • 上記の例は、 Datasource configのセクションのみを示しています。完全な構成については、 sync-diff-inspector ユーザーガイドを参照してください。
エコシステム
TiDB
TiKV
TiSpark
Chaos Mesh
© 2022 PingCAP. All Rights Reserved.