重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

Binlogクラスターの概要

このドキュメントでは、 Binlogのクラスタバージョンのアーキテクチャとデプロイメントを紹介します。

TiDB Binlogは、TiDBからbinlogデータを収集し、ダウンストリームプラットフォームにほぼリアルタイムのバックアップとレプリケーションを提供するために使用されるツールです。

Binlogには次の機能があります。

  • データ複製: TiDBクラスタのデータを他のデータベースに複製します
  • リアルタイムのバックアップと復元: TiDBクラスタ内のデータをバックアップし、クラスタに障害が発生したときにTiDBクラスタを復元します

ノート:

TiDB Binlogは、TiDB v5.0で導入された一部の機能と互換性がなく、一緒に使用することはできません。詳細については、 ノートを参照してください。 Binlogの代わりにTiCDCを使用することをお勧めします。

Binlogアーキテクチャ

Binlogアーキテクチャは次のとおりです。

TiDB Binlog architecture

TiDB Binlogクラスタは、 PumpとDrainerとDrainerで構成されています。

Pump

Pumpは、TiDBで生成されたbinlogを記録し、トランザクションのコミット時間に基づいてbinlogをソートし、消費のためにbinlogをDrainerに送信するために使用されます。

Drainer

Drainerは、各Pumpからbinlogを収集してマージし、binlogをSQLまたは特定の形式のデータに変換し、データを特定のダウンストリームプラットフォームに複製します。

binlogctlガイド

binlogctlは、次の機能を備えたBinlogの操作ツールです。

  • TiDBクラスタの現在のtsoを取得する
  • Pump/Drainerの状態を確認する
  • Pump/Drainerの状態の変更
  • Pump/Drainerの一時停止または閉鎖

主な特徴

  • 複数のポンプがクラスタを形成し、水平方向にスケールアウトできます
  • TiDBは、組み込みのPump Clientを使用して、binlogを各Pumpに送信します
  • Pumpはbinlogを保存し、 Drainerを順番にDrainerに送信します
  • Drainerは、各Pumpのbinlogを読み取り、binlogをマージして並べ替え、binlogをダウンストリームに送信します。
  • Drainerはリレーログをサポートします。リレーログにより、 Drainerはダウンストリームクラスターが一貫した状態にあることを確認します。

ノート

  • v5.1では、v5.0で導入されたクラスター化インデックス機能とBinlogの間の非互換性が解決されました。 BinlogとTiDBServerをv5.1にアップグレードし、TiDB Binlogを有効にすると、TiDBはクラスター化インデックスを使用したテーブルの作成をサポートします。クラスター化インデックスを使用して作成されたテーブルでのデータの挿入、削除、および更新は、 Binlogを介してダウンストリームに複製されます。 TiDB Binlogを使用して、クラスター化インデックスを使用してテーブルを複製する場合は、次の点に注意してください。

    • アップグレードシーケンスを手動で制御してクラスタをv5.0からv5.1にアップグレードした場合は、TiDBサーバーをv5.1にアップグレードする前に、TiDBbinlogがv5.1にアップグレードされていることを確認してください。
    • システム変数tidb_enable_clustered_indexを同じ値に構成して、アップストリームとダウンストリームの間でTiDBクラスター化インデックステーブルの構造に一貫性を持たせることをお勧めします。
  • TiDB Binlogは、TiDB v5.0で導入された次の機能と互換性がなく、一緒に使用することはできません。

    • TiDBクラスター化インデックス :TiDB Binlogが有効になった後、TiDBは、主キーとして非単一整数列を使用してクラスター化インデックスを作成することを許可しません。作成されたクラスター化インデックステーブルのデータの挿入、削除、および更新は、 Binlogを介してダウンストリームに複製されません。クラスター化インデックスを使用してテーブルを複製する必要がある場合は、クラスタをv5.1にアップグレードするか、代わりにTiCDCを使用してください。
    • TiDBシステム変数tidb_enable_async_commit :TiDB Binlogを有効にした後、このオプションを有効にしてもパフォーマンスを向上させることはできません。 Binlogの代わりにTiCDCを使用することをお勧めします。
    • TiDBシステム変数tidb_enable_1pc :TiDB Binlogを有効にした後、このオプションを有効にしてもパフォーマンスを向上させることはできません。 Binlogの代わりにTiCDCを使用することをお勧めします。
  • TiDB Binlogは、TiDB v4.0.7で導入された次の機能と互換性がなく、一緒に使用することはできません。

    • TiDBシステム変数tidb_enable_amend_pessimistic_txn :2つの機能には互換性の問題があります。それらを一緒に使用すると、 Binlogがデータを一貫して複製しないという問題が発生する可能性があります。
  • Drainerは、binlogのMySQL、TiDB、Kafka、またはローカルファイルへの複製をサポートしています。 binlogを他のDrainerのサポートされていない宛先に複製する必要がある場合は、 DrainerをKafkaに複製し、Kafkaのデータを読み取って、binlogコンシューマープロトコルに従ってカスタマイズされた処理を行うようにDrainerを設定できます。 Binlog Consumer Clientユーザーガイドを参照してください。

  • 増分データを回復するためにBinlogを使用するには、構成db-typefile (プロトバッファー形式のローカルファイル)に設定します。 Drainerは、binlogを指定されたプロトバッファ形式のデータに変換し、そのデータをローカルファイルに書き込みます。このように、 Reparoを使用してデータを段階的に回復できます。

    db-typeの値に注意してください:

    • TiDBのバージョンが2.1.9より前の場合は、 db-type="pb"を設定します。
    • TiDBのバージョンが2.1.9以降の場合は、 db-type="file"またはdb-type="pb"を設定します。
  • ダウンストリームがMySQL、MariaDB、または別のTiDBクラスタの場合、 sync-diff-inspectorを使用して、データ複製後にデータを検証できます。