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ユーザーガイドを参照してください。

このページは役に立ちましたか?