mysqlpump是MySQL 5.7+的并行备份工具,支持多线程、细粒度控制和压缩;可通过–default-parallelism提升性能,–exclude-databases等选项过滤数据,–compress-output实现LZ4/ZLIB压缩,有效提高备份效率与灵活性。

在 MySQL 中,mysqlpump 是一个用于逻辑备份的命令行工具,从 MySQL 5.7 版本开始提供,是 mysqldump 的增强替代工具,支持并行备份、更细粒度的对象控制以及压缩功能。下面介绍如何使用 mysqlpump 进行数据库备份。
1. 基本语法与简单备份
mysqlpump 的基本语法如下:
mysqlpump [options] [db_name [tbl_name …]]
例如,备份单个数据库:
mysqlpump -u root -p mydatabase > mydatabase_backup.sql
如果需要备份多个数据库,可以列出它们:
mysqlpump -u root -p db1 db2 > multi_db_backup.sql
要备份所有数据库(包括系统库),使用 --all-databases 选项:
mysqlpump -u root -p –all-databases > full_backup.sql
2. 并行备份提升性能
mysqlpump 支持多线程并行导出,通过 --default-parallelism 或为不同对象类型设置线程数来加速备份。
例如,启用 4 个并行线程进行备份:
mysqlpump -u root -p –default-parallelism=4 –all-databases > parallel_backup.sql
也可以分别指定不同对象的线程数:
mysqlpump -u root -p –add-drop-table –parallel-schemas=4=db1,db2,db3 db1 db2 db3 > partial_parallel.sql
3. 精细化控制备份内容
你可以按需排除或包含特定数据库、表或对象类型。
- 排除某些数据库:使用
--exclude-databases - 只备份特定表:在命令后指定表名
- 跳过某些对象类型,如视图、存储过程等
示例:备份除系统库外的所有用户数据库
mysqlpump -u root -p –exclude-databases=mysql,sys,information_schema,performance_schema –all-databases > user_dbs.sql
只备份某个数据库中的几张表:
mysqlpump -u root -p mydb table1 table2 > tables_backup.sql
4. 启用压缩节省空间
mysqlpump 支持直接压缩输出,使用 --compress-output 参数可显著减小备份文件体积。
支持的压缩算法有:LZ4 和 ZLIB(也支持 NONE)
mysqlpump -u root -p –compress-output=LZ4 –all-databases > compressed_backup.sql.lz4
恢复时需先解压(如使用 lz4 工具):
lz4 -d compressed_backup.sql.lz4 | mysql -u root -p
基本上就这些。合理使用 mysqlpump 能有效提升备份效率,特别是在大数据库或多库环境下。注意权限、磁盘空间和网络稳定性,确保备份完整可靠。


