TiDBBinlogConfiguration / コンフィグレーションファイル
このドキュメントでは、TiDBBinlogの構成項目を紹介します。
ポンプ
このセクションでは、Pumpの構成項目を紹介します。完全なポンプ構成ファイルの例については、 ポンプConfiguration / コンフィグレーションを参照してください。
addr
- HTTPAPIのリスニングアドレスを
host:port
の形式で指定します。 - デフォルト値:
127.0.0.1:8250
advertise-addr
- 外部からアクセス可能なHTTPAPIアドレスを指定します。このアドレスは、
host:port
の形式でPDに登録されます。 - デフォルト値:
127.0.0.1:8250
ソケット
- HTTPAPIがリッスンするUnixソケットアドレス。
- デフォルト値: ""
pd-urls
- PDURLのコンマ区切りリストを指定します。複数のアドレスが指定されている場合、PDクライアントが1つのアドレスへの接続に失敗すると、PDクライアントは自動的に別のアドレスへの接続を試みます。
- デフォルト値:
http://127.0.0.1:2379
data-dir
- binlogとそのインデックスがローカルに保存されるディレクトリを指定します。
- デフォルト値:
data.pump
ハートビート間隔
- 最新のステータスがPDに報告されるハートビート間隔(秒単位)を指定します。
- デフォルト値:
2
gen-binlog-interval
- データが偽のbinlogに書き込まれる間隔(秒単位)を指定します。
- デフォルト値:
3
gc
- binlogをローカルに保存できる日数(整数)を指定します。指定した日数より長く保存されたビンログは自動的に削除されます。
- デフォルト値:
7
ログファイル
- ログファイルが保存されるパスを指定します。パラメータが空の値に設定されている場合、ログファイルは保存されません。
- デフォルト値: ""
ログレベル
- ログレベルを指定します。
- デフォルト値:
info
node-id
- ポンプノードIDを指定します。このIDを使用すると、このポンププロセスをクラスタで識別できます。
- デフォルト値:
hostname:port number
。たとえば、node-1:8250
。
安全
このセクションでは、セキュリティに関連する構成項目を紹介します。
ssl-ca
- 信頼できるSSL証明書リストまたはCAリストのファイルパスを指定します。たとえば、
/path/to/ca.pem
。 - デフォルト値: ""
ssl-cert
- プライバシー強化メール(PEM)形式でエンコードされたX509証明書ファイルのパスを指定します。たとえば、
/path/to/pump.pem
。 - デフォルト値: ""
ssl-key
- PEM形式でエンコードされたX509キーファイルのパスを指定します。たとえば、
/path/to/pump-key.pem
。 - デフォルト値: ""
保管所
このセクションでは、ストレージに関連する構成項目を紹介します。
同期ログ
- データの安全性を確保するために、binlogへの各バッチ書き込みの後に
fsync
を使用するかどうかを指定します。 - デフォルト値:
true
kv_chan_cap
- Pumpがこれらの要求を受信する前に、バッファーが保管できる書き込み要求の数を指定します。
- デフォルト値:
1048576
(つまり、2の20乗)
slow_write_threshold
- しきい値(秒単位)。この指定されたしきい値よりも単一のbinlogファイルの書き込みに時間がかかる場合、書き込みは低速書き込みと見なされ、
"take a long time to write binlog"
がログに出力されます。 - デフォルト値:
1
stop-write-at-available-space
- 使用可能なストレージスペースがこの指定された値を下回ると、Binlog書き込み要求は受け入れられなくなります。
900 MB
などの形式を使用して、12 GiB
スペースを指定でき5 GB
。クラスタに複数のPumpノードがある場合、スペースが不足しているためにPumpノードが書き込み要求を拒否すると、TiDBは自動的に他のPumpノードにbinlogを書き込みます。 - デフォルト値:
10 GiB
kv
現在、PumpのストレージはGoLevelDBに基づいて実装されています。 storage
の下には、GoLevel構成を調整するために使用されるkv
のサブグループもあります。サポートされている構成項目は次のとおりです。
- ブロックキャッシュ容量
- block-restart-interval
- ブロックサイズ
- 圧縮-L0トリガー
- 圧縮テーブルサイズ
- 圧縮-合計サイズ
- 圧縮-合計サイズ-乗数
- 書き込みバッファ
- 書き込み-L0-一時停止-トリガー
- 書き込み-L0-スローダウン-トリガー
上記の項目の詳細については、 GoLevelDBドキュメントを参照してください。
ドレイナー
このセクションでは、Drainerの構成項目を紹介します。完全なDrainer構成ファイルの例については、 ドレイナーConfiguration / コンフィグレーションを参照してください。
addr
- HTTPAPIのリスニングアドレスを
host:port
の形式で指定します。 - デフォルト値:
127.0.0.1:8249
advertise-addr
- 外部からアクセス可能なHTTPAPIアドレスを指定します。このアドレスは、
host:port
の形式でPDに登録されます。 - デフォルト値:
127.0.0.1:8249
ログファイル
- ログファイルが保存されるパスを指定します。パラメータが空の値に設定されている場合、ログファイルは保存されません。
- デフォルト値: ""
ログレベル
- ログレベルを指定します。
- デフォルト値:
info
node-id
- ドレイナーノードIDを指定します。このIDを使用すると、このドレイナープロセスをクラスタで識別できます。
- デフォルト値:
hostname:port number
。たとえば、node-1:8249
。
data-dir
- Drainerの操作中に保存する必要のあるファイルを保存するために使用するディレクトリを指定します。
- デフォルト値:
data.drainer
検出間隔
- PDがポンプ情報を更新する間隔(秒単位)を指定します。
- デフォルト値:
5
pd-urls
- PDURLのコンマ区切りのリスト。複数のアドレスが指定されている場合、1つのアドレスへの接続中にエラーが発生すると、PDクライアントは自動的に別のアドレスへの接続を試みます。
- デフォルト値:
http://127.0.0.1:2379
initial-commit-ts
- トランザクションのどのコミットタイムスタンプからレプリケーションプロセスを開始するかを指定します。この構成は、初めてレプリケーションプロセスにあるDrainerノードにのみ適用されます。チェックポイントがダウンストリームにすでに存在する場合、レプリケーションはチェックポイントに記録された時間に従って実行されます。
- commit ts(コミットタイムスタンプ)は、TiDBでの取引のコミットの特定の時点です。これは、現在のトランザクションの一意のIDとして、グローバルに一意であり、PDから増加するタイムスタンプです。次の一般的な方法で
initial-commit-ts
の構成を取得できます。- BRを使用する場合、BR(backupmeta)によってバックアップされたメタデータに記録されたバックアップTSから
initial-commit-ts
を取得できます。 - Dumplingを使用する場合、Dumpling(メタデータ)によってバックアップされたメタデータに記録されたPosから
initial-commit-ts
を取得できます。 - PD制御を使用する場合、
tso
コマンドの出力にinitial-commit-ts
が含まれます。
- BRを使用する場合、BR(backupmeta)によってバックアップされたメタデータに記録されたバックアップTSから
- デフォルト値:
-1
。 Drainerは、開始時刻としてPDから新しいタイムスタンプを取得します。これは、レプリケーションプロセスが現在の時刻から開始されることを意味します。
同期チェック時間
- HTTP APIを介して
/status
のパスにアクセスし、Drainerレプリケーションのステータスを照会できます。synced-check-time
は、最後に成功したレプリケーションからsynced
と見なされる分数、つまりレプリケーションが完了した分を指定します。 - デフォルト値:
5
コンプレッサー
- ポンプとドレイナー間のデータ転送に使用される圧縮アルゴリズムを指定します。現在、
gzip
のアルゴリズムのみがサポートされています。 - デフォルト値: ""、これは圧縮なしを意味します。
安全
このセクションでは、セキュリティに関連する構成項目を紹介します。
ssl-ca
- 信頼できるSSL証明書リストまたはCAリストのファイルパスを指定します。たとえば、
/path/to/ca.pem
。 - デフォルト値: ""
ssl-cert
- PEM形式でエンコードされたX509証明書ファイルのパスを指定します。たとえば、
/path/to/drainer.pem
。 - デフォルト値: ""
ssl-key
- PEM形式でエンコードされたX509キーファイルのパスを指定します。たとえば、
/path/to/pump-key.pem
。 - デフォルト値: ""
シンカー
syncer
セクションには、ダウンストリームに関連する構成アイテムが含まれています。
db-type
現在、次のダウンストリームタイプがサポートされています。
mysql
tidb
kafka
file
デフォルト値: mysql
sql-mode
- ダウンストリームが
mysql
またはtidb
タイプの場合のSQLモードを指定します。複数のモードがある場合は、コンマを使用してそれらを区切ります。 - デフォルト値: ""
無視-txn-commit-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]
。 - デフォルト値:
[]
複製-実行-テーブル
複製するテーブルを指定します。例えば:
[[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
disable-dispatch
- 同時実行を無効にし、
worker-count
から1
に強制的に設定します。 - デフォルト値:
false
セーフモード
セーフモードが有効になっている場合、Drainerはレプリケーションの更新を次のように変更します。
Insert
はReplace Into
に変更されますUpdate
はDelete
プラスReplace Into
に変更されます
デフォルト値: false
syncer.to
syncer.to
のセクションでは、構成タイプに応じて、さまざまなタイプのダウンストリーム構成アイテムを紹介します。
mysql / tidb
次の構成項目は、ダウンストリームデータベースへの接続に関連しています。
host
:この項目が設定されていない場合、TiDBBinlogはデフォルトでlocalhost
であるMYSQL_HOST
環境変数をチェックしようとします。port
:この項目が設定されていない場合、TiDBBinlogはデフォルトで3306
であるMYSQL_PORT
環境変数をチェックしようとします。user
:この項目が設定されていない場合、TiDBBinlogはデフォルトでroot
であるMYSQL_USER
環境変数をチェックしようとします。password
:この項目が設定されていない場合、TiDBBinlogはデフォルトで""
であるMYSQL_PSWD
環境変数をチェックしようとします。
ファイル
dir
:binlogファイルが保存されるディレクトリを指定します。この項目が設定されていない場合は、data-dir
が使用されます。
カフカ
ダウンストリームがKafkaの場合、有効な構成項目は次のとおりです。
zookeeper-addrs
kafka-addrs
kafka-version
kafka-max-messages
kafka-max-message-size
topic-name
syncer.to.checkpoint
type
:レプリケーションの進行状況を保存する方法を指定します。現在、使用可能なオプションはmysql
、およびtidb
file
。この構成項目は、デフォルトでダウンストリームタイプと同じです。たとえば、ダウンストリームが
file
の場合、チェックポイントの進行状況はローカルファイル<data-dir>/savepoint
に保存されます。ダウンストリームがmysql
の場合、進行状況はダウンストリームデータベースに保存されます。進行状況を保存するためにmysql
またはtidb
を使用して明示的に指定する必要がある場合は、次の構成を行います。デフォルトでは
schema
:"tidb_binlog"
。ノート:
同じTiDBクラスタに複数のDrainerノードをデプロイする場合は、ノードごとに異なるチェックポイントスキーマを指定する必要があります。そうしないと、2つのインスタンスのレプリケーションの進行状況が相互に上書きされます。
host
user
password
port