TiDB BinlogConfiguration / コンフィグレーションファイル
このドキュメントでは、TiDB Binlogの構成項目を紹介します。
Pump
このセクションでは、 Pumpの設定項目を紹介します。完全なPump構成ファイルの例については、 PumpConfiguration / コンフィグレーションを参照してください。
アドレス
- HTTP API のリッスン アドレスを
host:portの形式で指定します。 - デフォルト値: 
127.0.0.1:8250 
広告アドレス
- 外部からアクセス可能な HTTP API アドレスを指定します。このアドレスは
host:portの形式で PD に登録されます。 - デフォルト値: 
127.0.0.1:8250 
ソケット
- HTTP API がリッスンする Unix ソケット アドレス。
 - デフォルト値: ""
 
pd-url
- PD URL のコンマ区切りリストを指定します。複数のアドレスが指定されている場合、PD クライアントが 1 つのアドレスへの接続に失敗すると、自動的に別のアドレスへの接続を試みます。
 - デフォルト値: 
http://127.0.0.1:2379 
データディレクトリ
- binlog とそのインデックスがローカルに保存されるディレクトリを指定します。
 - デフォルト値: 
data.pump 
ハートビート間隔
- 最新のステータスが PD に報告されるハートビート間隔 (秒単位) を指定します。
 - デフォルト値: 
2 
gen-binlog-interval
- データが偽の binlog に書き込まれる間隔 (秒単位) を指定します。
 - デフォルト値: 
3 
GC
- binlog をローカルに保存できる日数 (整数) を指定します。指定した日数を超えて保存されたバイナリログは自動的に削除されます。
 - デフォルト値: 
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です。 - デフォルト値: ""
 
保管所
ストレージに関する設定項目を紹介します。
同期ログ
- データの安全性を確保するために、binlog への各バッチ書き込みの後に
fsyncを使用するかどうかを指定します。 - デフォルト値: 
true 
kv_chan_cap
- Pumpがこれらの要求を受信する前に、バッファが格納できる書き込み要求の数を指定します。
 - デフォルト値: 
1048576(つまり、2 の 20 乗) 
slow_write_threshold
- しきい値 (秒単位)。この指定されたしきい値よりも 1 つの binlog ファイルの書き込みに時間がかかる場合、書き込みは低速書き込みと見なされ、ログに
"take a long time to write binlog"が出力されます。 - デフォルト値: 
1 
使用可能なスペースで書き込みを停止
- 使用可能なストレージ容量がこの指定値を下回ると、 Binlog書き込みリクエストは受け入れられなくなります。 
900 MB、5 GB、12 GiBなどの形式を使用して、ストレージ領域を指定できます。クラスター内に複数のPumpノードがある場合、容量不足のためにPumpノードが書き込み要求を拒否すると、TiDB はバイナリログを他のPumpノードに自動的に書き込みます。 - デフォルト値: 
10 GiB 
kv
現在、 PumpのストレージはGoLevelDBに基づいて実装されています。 storageの下には、GoLevel 構成を調整するために使用されるkvサブグループもあります。サポートされている構成アイテムは次のとおりです。
- ブロックキャッシュ容量
 - ブロック再起動間隔
 - ブロックサイズ
 - 圧縮-L0-トリガー
 - 圧縮テーブルのサイズ
 - 圧縮合計サイズ
 - 圧縮合計サイズ乗数
 - 書き込みバッファ
 - 書き込み-L0-一時停止トリガー
 - 書き込み-L0-スローダウン-トリガー
 
上記の項目の詳細な説明については、 GoLevelDB ドキュメントを参照してください。
Drainer
Drainerの設定項目を紹介します。完全なDrainer構成ファイルの例については、 DrainerConfiguration / コンフィグレーションを参照してください。
アドレス
- 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-url
- PD URL のコンマ区切りリスト。複数のアドレスが指定されている場合、1 つのアドレスへの接続時にエラーが発生すると、PD クライアントは自動的に別のアドレスへの接続を試みます。
 - デフォルト値: 
http://127.0.0.1:2379 
初期コミット ts
- レプリケーション プロセスを開始するトランザクションのコミット タイムスタンプを指定します。この構成は、初めてレプリケーション プロセスにあるDrainerノードにのみ適用されます。ダウンストリームにチェックポイントがすでに存在する場合、チェックポイントに記録された時間に従ってレプリケーションが実行されます。
 - commit ts (コミット タイムスタンプ) は、TiDB での取引コミットの特定の時点です。これは、現在のトランザクションの一意の ID として PD からグローバルに一意で増加するタイムスタンプです。次の一般的な方法で
initial-commit-tsの構成を取得できます。- BR を使用した場合、BR がバックアップするメタデータ (backupmeta) に記録されているバックアップ TS から
initial-commit-ts取得できます。 - Dumplingを利用した場合、 Dumplingがバックアップするメタデータ(メタデータ)に記録されているPosから
initial-commit-ts取得でき、 - PD Controlが使用されている場合、 
initial-commit-tsはtsoコマンドの出力になります。 
 - BR を使用した場合、BR がバックアップするメタデータ (backupmeta) に記録されているバックアップ TS から
 - デフォルト値: 
-1。 Drainerは、開始時刻として PD から新しいタイムスタンプを取得します。これは、レプリケーション プロセスが現在の時刻から開始されることを意味します。 
同期チェック時刻
- HTTP API 経由で
/statusのパスにアクセスして、 Drainerレプリケーションのステータスを照会できます。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セクションには、ダウンストリームに関連する構成項目が含まれます。
データベースタイプ
現在、次のダウンストリーム タイプがサポートされています。
mysqltidbkafkafile
デフォルト値: mysql
SQL モード
- ダウンストリームが
mysqlまたはtidbタイプの場合の SQL モードを指定します。複数のモードがある場合は、カンマで区切ります。 - デフォルト値: ""
 
無視-txn-コミット-ts
- 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]です。 - デフォルト値: 
[] 
レプリケート DO テーブル
レプリケートするテーブルを指定します。例えば:
[[syncer.replicate-do-table]]
db-name ="test"
tbl-name = "log"
[[syncer.replicate-do-table]]
db-name ="test"
tbl-name = "~^a.*"
デフォルト値: []
txn-バッチ
- ダウンストリームが
mysqlまたはtidbタイプの場合、DML 操作は別のバッチで実行されます。このパラメーターは、各トランザクションに含めることができる DML 操作の数を指定します。 - デフォルト値: 
20 
ワーカー数
- ダウンストリームが
mysqlまたはtidbタイプの場合、DML操作は並行して実行されます。このパラメーターは、DML 操作の同時実行数を指定します。 - デフォルト値: 
16 
ディスパッチを無効にする
- 同時実行を無効にし、強制的に
worker-countから1に設定します。 - デフォルト値: 
false 
セーフモード
セーフ モードが有効になっている場合、 Drainerはレプリケーションの更新を次のように変更します。
InsertはReplace Intoに変更されますUpdateはDeleteプラスReplace Intoに変更されます
デフォルト値: false
syncer.to
syncer.toセクションでは、構成の種類に応じて、さまざまな種類のダウンストリーム構成項目を紹介します。
mysql/tidb
次の構成項目は、ダウンストリーム データベースへの接続に関連しています。
host: この項目が設定されていない場合、TiDB BinlogはデフォルトでlocalhostであるMYSQL_HOST環境変数をチェックしようとします。port: この項目が設定されていない場合、TiDB Binlogはデフォルトで3306であるMYSQL_PORT環境変数をチェックしようとします。user: この項目が設定されていない場合、TiDB BinlogはデフォルトでrootであるMYSQL_USER環境変数をチェックしようとします。password: この項目が設定されていない場合、TiDB Binlogはデフォルトで""であるMYSQL_PSWD環境変数をチェックしようとします。read-timeout: ダウンストリーム データベース接続の I/O 読み取りタイムアウトを指定します。デフォルト値は1mです。時間がかかる一部の DDL でDrainerが失敗し続ける場合は、この構成をより大きな値に設定できます。
ファイル
dir: binlog ファイルが保存されるディレクトリを指定します。この項目が設定されていない場合は、data-dirが使用されます。
カフカ
ダウンストリームが Kafka の場合、有効な構成項目は次のとおりです。
zookeeper-addrskafka-addrskafka-versionkafka-max-messageskafka-max-message-sizetopic-name
syncer.to.checkpoint
type: レプリケーションの進行状況を保存する方法を指定します。現在、使用可能なオプションはmysql、tidb、およびfileです。この構成項目は、既定ではダウンストリーム タイプと同じです。たとえば、ダウンストリームが
fileの場合、チェックポイントの進行状況はローカル ファイル<data-dir>/savepointに保存されます。ダウンストリームがmysqlの場合、進行状況はダウンストリーム データベースに保存されます。進行状況を保存するためにmysqlまたはtidbを使用して明示的に指定する必要がある場合は、次の構成を行います。schema: デフォルトでは"tidb_binlog"です。ノート:
複数のDrainerノードを同じ TiDB クラスターにデプロイする場合、ノードごとに異なるチェックポイント スキーマを指定する必要があります。そうしないと、2 つのインスタンスのレプリケーションの進行状況が互いに上書きされます。
hostuserpasswordport