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 MB
、5 GB
、12 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
含まれます。
- BRを使用する場合は、 BRによってバックアップされたメタデータ (backupmeta) に記録されたバックアップ TS から
- デフォルト値:
-1
。Drainerは開始時刻として PD から新しいタイムスタンプを取得します。つまり、レプリケーション プロセスは現在の時刻から開始されます。
同期チェック時間
- HTTP API を介して
/status
パスにアクセスし、 Drainerレプリケーションのステータスを照会できます。3synced-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-count
〜1
に設定します。 - デフォルト値:
false
セーフモード
セーフ モードが有効になっている場合、 Drainer はレプリケーションの更新を次のように変更します。
Insert
はReplace Into
に変更されますUpdate
はDelete
プラス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
: レプリケーションの進行状況を保存する方法を指定します。現在、使用可能なオプションはmysql
、tidb
、およびfile
です。この設定項目は、デフォルトではダウンストリーム タイプと同じです。たとえば、ダウンストリームが
file
の場合、チェックポイントの進行状況はローカル ファイル<data-dir>/savepoint
に保存され、ダウンストリームがmysql
の場合、進行状況はダウンストリーム データベースに保存されます。進行状況を保存するためにmysql
またはtidb
を使用して明示的に指定する必要がある場合は、次の設定を行います。デフォルトでは
schema
:"tidb_binlog"
。注記:
同じ TiDB クラスターに複数のDrainerノードを展開する場合は、ノードごとに異なるチェックポイント スキーマを指定する必要があります。そうしないと、2 つのインスタンスのレプリケーションの進行状況が互いに上書きされてしまいます。
host
user
password
port