mysqlpump是MySQL 5.7+的多线程逻辑备份工具,支持并行导出、压缩和选择性备份,语法为mysqlpump [options] [db[tbl]] > backup.sql,可备份所有或指定数据库、表,通过--default-parallelism、--compress-output等参数提升性能,支持排除系统库或特定对象,恢复时使用mysql命令导入,适用于大规模数据库高效备份。
MySQL 使用
mysqlpump
进行备份是一种高效、多线程的逻辑备份工具,从 MySQL 5.7 版本开始提供,作为 mysqldump 的增强替代方案。它支持并行导出数据,提升备份速度,并可灵活选择数据库、表或对象类型进行备份。
1. mysqlpump 基本语法
使用 mysqlpump 备份的基本命令格式如下:
如果不指定数据库,则默认备份所有数据库。
2. 常见备份操作示例
备份所有数据库
该命令会导出所有数据库的数据和定义,推荐用于全量备份。
备份指定数据库
只备份名为 mydatabase 的数据库。
备份多个指定数据库
可以同时备份多个数据库,每个数据库结构和数据都会包含在内。
备份特定表
MySQL(Linux)
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
下载
仅导出 mydatabase 中的 table1 和 table2 表。
3. 提升性能的常用选项
mysqlpump 支持多线程导出,可通过以下参数优化备份速度:
--default-parallelism=N
:设置默认并行线程数(如 N=4)
--parallel-schemas=[N:]db1,db2
:为指定数据库设置并行导出
--add-drop-table
:导出时添加 DROP TABLE 语句
--compress-output=ZLIB
:压缩输出以减少文件大小(支持 ZLIB、LZ4、NONE)
示例:启用压缩和并行处理
4. 排除某些内容
可通过选项排除特定数据库或对象:
--exclude-databases=mysql,sys
:跳过系统数据库
--exclude-tables=^temp_
:排除表名匹配
正则表达式
的表
--skip-users
:不导出用户账户信息
--skip-grant-tables
:不导出权限表
例如,只备份业务库,排除系统库:
5. 恢复备份文件
使用 mysql 命令恢复 mysqlpump 生成的备份:
如果备份文件被压缩(如 zlib),需先解压或通过管道处理:
基本上就这些。mysqlpump 在处理
大数据
库时比 mysqldump 更快,尤其适合需要并行导出和压缩的场景。注意定期测试备份文件的可恢复性,确保数据安全。
mysqlpump [options] [db_name [tbl_name ...]] > backup.sqlmysqlpump -u root -p --all-databases > full_backup.sqlmysqlpump -u root -p mydatabase > mydb_backup.sqlmysqlpump -u root -p --databases db1 db2 db3 > multi_db_backup.sqlmysqlpump -u root -p mydatabase table1 table2 > partial_backup.sqlmysqlpump -u root -p --all-databases --compress-output=ZLIB --default-parallelism=4 > compressed_backup.sql.zlibmysqlpump -u root -p --exclude-databases=mysql,information_schema,sys --all-databases > business_backup.sqlmysql -u root -p < backup.sqlmysqlpump -u root -p --execute="SOURCE compressed_backup.sql.zlib" --decompress-input