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-type
をtidb
に設定して、ts-map
がチェックポイントに保存されるようにします。- TiKVのガベージコレクション(GC)時間を変更して、スナップショットに対応する履歴データがデータチェック中にGCによって収集されないようにします。 GC時間を1時間に変更し、チェック後に設定を復元することをお勧めします。
- TiDB Binlogの一部のバージョンでは、
master-ts
とslave-ts
がts-map
に格納されます。master-ts
はprimary-ts
に相当し、slave-ts
はsecondary-ts
に相当します。- 上記の例は、
Datasource config
のセクションのみを示しています。完全な構成については、 sync-diff-inspectorユーザーガイドを参照してください。