Dumpling is a tool and a Go library for creating SQL dump from a MySQL-compatible database.
It is intended to replace mysqldump
and mydumper
when targeting TiDB.
You may read the design document, English user guide and 中文使用手册 for details.
Dumpling is currently in early development stage, and most features are incomplete. Contributions are welcomed!
- SQL dump is split into multiple files (like
mydumper
) for easy management. - Export multiple tables in parallel to speed up execution.
- Multiple output formats: SQL, CSV, ...
- Write to cloud storage (S3, GCS) natively
- Advanced table filtering
Any questions? Let's discuss in #sig-migrate in Slack!
- Under directory
tidb
- Install Go 1.16 or above
- Run
make build_dumpling
to compile. The output is inbin/dumpling
. - Run
make dumpling_unit_test
to run the unit tests. - Run
make dumpling_integration_test
to run integration tests. For integration test:
- The following executables must be copied or generated or linked into these locations:
bin/sync_diff_inspector
(download from tidb-enterprise-tools-latest-linux-amd64)bin/tidb-server
(download from tidb-master-linux-amd64)bin/tidb-lightning
(download from tidb-toolkit-latest-linux-amd64)bin/minio
(download from https://min.io/download)- Now, you can run
sh ./dumpling/install.sh
to get the above binary files.
- The following programs must be installed:
mysql
(the CLI client)
- There must be a local mysql server listening on
127.0.0.1:3306
, and an active user with no password that can be connected through this TCP address.
Dumpling is under the Apache 2.0 license. See the LICENSE file for details.