TiDB-Binlog is a tool used to collect TiDB's binary logs with the following features:
-
Data replication
Synchronize data from the TiDB cluster to heterogeneous databases.
-
Real-time backup and recovery
Backup the TiDB cluster into the Dump file and it can be used for recovery.
-
Multiple output format
Support MySQL, Dump file, etc.
-
History replay
Replay from any history point.
Pump is a daemon that receives real-time binlogs from tidb-server and writes in sequential disk files synchronously.
Drainer collects binlogs from each Pump in the cluster, transforms binlogs to various dialects of SQL, and applies to the downstream database or filesystem.
To check the code style and build binaries, you can simply run:
make build # build all components
If you only want to build binaries, you can run:
make pump # build pump
make drainer # build drainer
When TiDB-Binlog is built successfully, you can find the binary in the bin
directory.
Run all tests, including unit test and integration test
make test
See tests for how to execute and add integration tests.
The recommended startup sequence: PD -> TiKV -> Pump -> TiDB -> Drainer
The best way to install TiDB-Binlog is via TiDB-Binlog-Ansible
Here's a tutorial to experiment with TiDB-Binlog (not for production use).
- Pump config file: pump.toml
- Drainer config file: drainer.toml
Contributions are welcomed and greatly appreciated. See CONTRIBUTING.md for details on submitting patches and the contribution workflow.
TiDB-Binlog is under the Apache 2.0 license. See the LICENSE file for details.