Dumpling is a tool and a Go library for creating an SQL dump from a MySQL-compatible database.
It is intended to replace mysqldump
and mydumper
when targeting TiDB.
You may read the original design document. The end-user documentation is available here: en, zh, ja.
Dumpling is in active development. 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? Discord, Slack and other contact options can be found here
- Under directory
tidb
- Install Go 1.23.4 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.