TiDBBinlogコンフィグレーションファイル

このドキュメントでは、 TiDB Binlogの設定項目を紹介します。

Pump

このセクションでは、 Pumpの設定項目について説明します。完全なPump設定ファイルの例については、 Pumpコンフィグレーション参照してください。

住所

  • HTTP API のリスニング アドレスをhost:portの形式で指定します。
  • デフォルト値: 127.0.0.1:8250
  • 外部からアクセス可能な HTTP API アドレスを指定します。このアドレスはhost:portの形式で PD に登録されます。
  • デフォルト値: 127.0.0.1:8250

ソケット

  • HTTP API がリッスンする Unix ソケット アドレス。
  • デフォルト値: ""

pd-urls

  • PD URL のコンマ区切りリストを指定します。複数のアドレスを指定すると、PD クライアントが 1 つのアドレスへの接続に失敗すると、自動的に別のアドレスへの接続を試みます。
  • デフォルト値: http://127.0.0.1:2379

データディレクトリ

  • バイナリログとそのインデックスがローカルに保存されるディレクトリを指定します。
  • デフォルト値: data.pump

ハートビート間隔

  • 最新のステータスが PD に報告されるハートビート間隔 (秒単位) を指定します。
  • デフォルト値: 2

バイナリログ間隔

  • 偽のbinlogにデータが書き込まれる間隔 (秒単位) を指定します。
  • デフォルト値: 3

GC

  • バイナリログをローカルに保存できる日数 (整数) を指定します。指定された日数を超えて保存されたバイナリログは自動的に削除されます。
  • デフォルト値: 7

ログファイル

  • ログ ファイルが保存されるパスを指定します。パラメータが空の値に設定されている場合、ログ ファイルは保存されません。
  • デフォルト値: ""

ログレベル

  • ログ レベルを指定します。
  • デフォルト値: info

ノードID

  • Pumpノード ID を指定します。この ID を使用すると、このPumpプロセスをクラスター内で識別できます。
  • デフォルト値: hostname:port number 。たとえば、 node-1:8250

安全

このセクションでは、セキュリティに関連する設定項目について説明します。

ssl-ca

  • 信頼できる SSL 証明書リストまたは CA リストのファイル パスを指定します。たとえば、 /path/to/ca.pem
  • デフォルト値: ""

SSL証明書

  • Privacy Enhanced Mail (PEM) 形式でエンコードされた X509 証明書ファイルのパスを指定します。たとえば、 /path/to/pump.pem
  • デフォルト値: ""

SSLキー

  • PEM 形式でエンコードされた X509 キー ファイルのパスを指定します。たとえば、 /path/to/pump-key.pem
  • デフォルト値: ""

storage

このセクションでは、storageに関連する設定項目について説明します。

同期ログ

  • データの安全性を確保するために、 binlogへのバッチ書き込みごとにfsync使用するかどうかを指定します。
  • デフォルト値: true

キャプ

  • Pumpが書き込み要求を受信する前にバッファが保存できる書き込み要求の数を指定します。
  • デフォルト値: 1048576 (つまり、2 の 20 乗)

遅い書き込みしきい値

  • しきい値 (秒単位)。単一のbinlogファイルの書き込みに、この指定されたしきい値よりも長い時間がかかる場合、書き込みは低速書き込みとみなされ、ログに"take a long time to write binlog"が出力されます。
  • デフォルト値: 1

空き容量に達したら書き込みを停止

  • 使用可能なstorage容量がこの指定値を下回ると、Binlog書き込み要求は受け入れられなくなります。storage容量を指定するには、 900 MB5 GB12 GiBなどの形式を使用できます。クラスター内に複数のPumpノードがある場合、スペース不足のためにPumpノードが書き込み要求を拒否すると、TiDB は自動的に他のPumpノードにバイナリログを書き込みます。
  • デフォルト値: 10 GiB

クヴ

現在、 PumpのstorageはゴーレベルDBに基づいて実装されています。 storageの下には、GoLevel 構成を調整するために使用されるkvサブグループもあります。 サポートされている構成項目を以下に示します。

  • ブロックキャッシュ容量
  • ブロック再開間隔
  • ブロックサイズ
  • 圧縮-L0-トリガー
  • 圧縮テーブルのサイズ
  • 圧縮合計サイズ
  • 圧縮合計サイズ乗数
  • 書き込みバッファ
  • 書き込み-L0-一時停止-トリガー
  • 書き込み-L0-スローダウン-トリガー

上記項目の詳しい説明についてはGoLevelDB ドキュメントを参照。

Drainer

このセクションでは、 Drainerの設定項目を紹介します。完全なDrainer設定ファイルの例については、 Drainerコンフィグレーションを参照してください。

住所

  • HTTP API のリスニング アドレスをhost:portの形式で指定します。
  • デフォルト値: 127.0.0.1:8249
  • 外部からアクセス可能な HTTP API アドレスを指定します。このアドレスはhost:portの形式で PD に登録されます。
  • デフォルト値: 127.0.0.1:8249

ログファイル

  • ログ ファイルが保存されるパスを指定します。パラメータが空の値に設定されている場合、ログ ファイルは保存されません。
  • デフォルト値: ""

ログレベル

  • ログ レベルを指定します。
  • デフォルト値: info

ノードID

  • Drainerノード ID を指定します。この ID を使用すると、このDrainerプロセスをクラスター内で識別できます。
  • デフォルト値: hostname:port number 。たとえば、 node-1:8249

データディレクトリ

  • Drainer操作中に保存する必要があるファイルを格納するために使用するディレクトリを指定します。
  • デフォルト値: data.drainer

検出間隔

  • PD がPump情報を更新する間隔 (秒単位) を指定します。
  • デフォルト値: 5

pd-urls

  • PD URL のコンマ区切りリスト。複数のアドレスが指定されている場合、1 つのアドレスへの接続時にエラーが発生すると、PD クライアントは自動的に別のアドレスへの接続を試みます。
  • デフォルト値: http://127.0.0.1:2379

初期コミット

  • レプリケーション プロセスを開始するトランザクションのコミット タイムスタンプを指定します。この構成は、レプリケーション プロセスが初めて実行されるDrainerノードにのみ適用されます。ダウンストリームにチェックポイントが既に存在する場合、チェックポイントに記録された時間に従ってレプリケーションが実行されます。
  • commit ts (コミット タイムスタンプ) は、TiDB 内の取引のコミットの特定の時点です。これは、現在のトランザクションの一意の ID として PD からグローバルに一意で増加するタイムスタンプです。次の一般的な方法でinitial-commit-ts構成を取得できます。
    • BRを使用する場合は、 BRによってバックアップされたメタデータ (backupmeta) に記録されたバックアップ TS からinitial-commit-ts取得できます。
    • Dumplingを使用する場合は、 Dumplingによってバックアップされたメタデータ(メタデータ)に記録されたPosからinitial-commit-tsを取得できます。
    • PD Controlが使用されている場合、 tsoコマンドの出力にはinitial-commit-ts含まれます。
  • デフォルト値: -1 。Drainerは開始時刻として PD から新しいタイムスタンプを取得します。つまり、レプリケーション プロセスは現在の時刻から開始されます。

同期チェック時間

  • HTTP API を介して/statusパスにアクセスし、 Drainerレプリケーションのステータスを照会できます。3 synced-check-time最後の正常なレプリケーションから何分経過するとsyncedと見なされるか、つまりレプリケーションが完了したかを指定します。
  • デフォルト値: 5

コンプレッサー

  • PumpとDrainer間のデータ転送に使用される圧縮アルゴリズムを指定します。現在サポートされているのはgzipアルゴリズムのみです。
  • デフォルト値: ""、圧縮なしを意味します。

安全

このセクションでは、セキュリティに関連する設定項目について説明します。

ssl-ca

  • 信頼できる SSL 証明書リストまたは CA リストのファイル パスを指定します。たとえば、 /path/to/ca.pem
  • デフォルト値: ""

SSL証明書

  • PEM 形式でエンコードされた X509 証明書ファイルのパスを指定します。たとえば、 /path/to/drainer.pem
  • デフォルト値: ""

SSLキー

  • PEM 形式でエンコードされた X509 キー ファイルのパスを指定します。たとえば、 /path/to/pump-key.pem
  • デフォルト値: ""

シンカー

syncerセクションには、ダウンストリームに関連する構成項目が含まれます。

dbタイプ

現在、次のダウンストリーム タイプがサポートされています。

  • mysql
  • tidb
  • kafka
  • file

デフォルト値: mysql

SQL モード

  • ダウンストリームがmysqlまたはtidbタイプの場合に SQL モードを指定します。複数のモードがある場合は、カンマで区切ります。
  • デフォルト値: ""

トランザクションコミットを無視する

  • binlogが無視されるコミットタイムスタンプを指定します (例: [416815754209656834, 421349811963822081]
  • デフォルト値: []

スキーマを無視

  • レプリケーション中に無視するデータベースを指定します。無視するデータベースが複数ある場合は、コンマで区切ります。binlog ファイル内のすべての変更がフィルター処理される場合、 binlogファイル全体が無視されます。
  • デフォルト値: INFORMATION_SCHEMA,PERFORMANCE_SCHEMA,mysql

無視テーブル

レプリケーション中に指定されたテーブルの変更を無視します。 tomlファイルで無視するテーブルを複数指定できます。 例:

[[syncer.ignore-table]] db-name = "test" tbl-name = "log" [[syncer.ignore-table]] db-name = "test" tbl-name = "audit"

binlogファイル内のすべての変更がフィルタリングされると、 binlogファイル全体が無視されます。

デフォルト値: []

複製-do-db

  • 複製するデータベースを指定します。たとえば、 [db1, db2]
  • デフォルト値: []

複製実行テーブル

複製するテーブルを指定します。例:

[[syncer.replicate-do-table]] db-name ="test" tbl-name = "log" [[syncer.replicate-do-table]] db-name ="test" tbl-name = "~^a.*"

デフォルト値: []

トランザクションバッチ

  • ダウンストリームがmysqlまたはtidbタイプの場合、DML 操作は異なるバッチで実行されます。このパラメータは、各トランザクションに含めることができる DML 操作の数を指定します。
  • デフォルト値: 20

労働者数

  • ダウンストリームがmysqlまたはtidbタイプの場合、DML 操作は同時に実行されます。このパラメータは、DML 操作の同時実行数を指定します。
  • デフォルト値: 16

ディスパッチを無効にする

  • 同時実行を無効にし、強制的にworker-count1に設定します。
  • デフォルト値: false

セーフモード

セーフ モードが有効になっている場合、 Drainer はレプリケーションの更新を次のように変更します。

  • InsertReplace Intoに変更されます
  • UpdateDeleteプラスReplace Intoに変更されます

デフォルト値: false

シンカー

セクションsyncer.toでは、構成タイプに応じて、さまざまな種類のダウンストリーム構成項目について説明します。

mysql/tidb

次の構成項目は、ダウンストリーム データベースへの接続に関連しています。

  • host : この項目が設定されていない場合、TiDB Binlog はデフォルトでlocalhostであるMYSQL_HOST環境変数をチェックしようとします。
  • port : この項目が設定されていない場合、TiDB Binlog はMYSQL_PORT環境変数 (デフォルトでは3306 ) をチェックしようとします。
  • user : この項目が設定されていない場合、TiDB Binlog はデフォルトでrootであるMYSQL_USER環境変数をチェックしようとします。
  • password : この項目が設定されていない場合、TiDB Binlog はデフォルトで""であるMYSQL_PSWD環境変数をチェックしようとします。
  • read-timeout : ダウンストリーム データベース接続の I/O 読み取りタイムアウトを指定します。デフォルト値は1mです。Drainerが時間のかかる一部の DDL で失敗し続ける場合は、この構成をより大きな値に設定できます。

ファイル

  • dir : binlogファイルが保存されるディレクトリを指定します。この項目が設定されていない場合は、 data-dirが使用されます。

カフカ

ダウンストリームが Kafka の場合、有効な設定項目は次のとおりです。

  • zookeeper-addrs
  • kafka-addrs
  • kafka-version
  • kafka-max-messages
  • kafka-max-message-size
  • topic-name

syncer.to.checkpoint

  • type : レプリケーションの進行状況を保存する方法を指定します。現在、使用可能なオプションはmysqltidb 、およびfileです。

    この設定項目は、デフォルトではダウンストリーム タイプと同じです。たとえば、ダウンストリームがfileの場合、チェックポイントの進行状況はローカル ファイル<data-dir>/savepointに保存され、ダウンストリームがmysqlの場合、進行状況はダウンストリーム データベースに保存されます。進行状況を保存するためにmysqlまたはtidbを使用して明示的に指定する必要がある場合は、次の設定を行います。

  • デフォルトではschema : "tidb_binlog"

    注記:

    同じ TiDB クラスターに複数のDrainerノードを展開する場合は、ノードごとに異なるチェックポイント スキーマを指定する必要があります。そうしないと、2 つのインスタンスのレプリケーションの進行状況が互いに上書きされてしまいます。

  • host

  • user

  • password

  • port

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