首页 > 数据库 >MySQL Pump工具多数据库并行备份方法

MySQL Pump工具多数据库并行备份方法

来源:互联网 2026-07-08 08:29:00

mysqlpump默认单线程,需通过--default-parallelism=N参数启用并行,但并行要求多个独立库或表,多库场景推荐使用--include-databases强制分片。压缩输出需先解压再导入。MySQL8.0.34及以上已弃用该工具,建议迁移至MySQLShell的util.dump(),它支持并行、压缩与进度显示,功能更强大。

mysqlpump这个工具,很多人都知道它能并行备份,但默认情况下它其实是个“单线程选手”——哪怕你机器上有32核CPU,不加参数它也只用一个线程干活。关键不是“能不能并行”,而是“怎么配置才能真正并发”。

MySQL Pump工具多数据库并行备份方法

先说清楚:mysqlpump默认不启用并行,必须显式指定--default-parallelism=N(N>0)才打开多线程;而且只有表结构和数据能并行,函数、权限、事件这些全局对象依然是串行处理,前提还得是数据库里有多个独立对象(比如多个库或多个表)才能真的分片并发。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

为什么--default-parallelism设了却没效果?

一个挺常见的现象:明明加了--default-parallelism=4,但CPU始终只有一个核满载,SHOW PROCESSLIST里只看到1个Dump线程,备份时间和mysqldump差不多。问题出在哪?不是参数写错了,而是两个硬性条件没满足。

条件一:数据库里独立对象不够多
mysqlpump按库或表分片并行。如果只有一个库,且这个库里只有一两张表,那哪怕你设了--default-parallelism=8,它也只会起1~2个线程。通常要求至少2个库,或者单库内至少有4张表以上,才能看到真正的并发效果。

条件二:用户权限不足
除了最基础的SELECT权限,如果用了--single-transaction,还需要RELOAD权限。另外,导出用户需要对mysql库有SELECT权限,否则某些对象会被静默跳过,并行数直接归零。建议先跑一次干运行验证:

mysqlpump -u u -p --all-databases --dry-run

看看输出里是不是真列出了所有库和表。如果列表不完整,那就是权限问题。

多库并行最稳的写法是--include-databases

很多人习惯这样写:

mysqlpump -u root -p db1 db2 db3

这种写法容易被当成单库上下文处理,并行度受限。正确的做法是显式用--include-databases强制触发库级分片:

mysqlpump -u root -p --include-databases=db1,db2,db3 --default-parallelism=4 > backup.sql

这样它会为每个库单独分配线程池,比拼接参数可靠得多。如果库数量多(比如10+),可以搭配--parallel-schemas对重点库单独提权:

--parallel-schemas=6:core_db,log_db

其余库走默认值。注意:线程数不是越多越好。SSD上建议≤8,HDD上≤4。超过物理核心数后,I/O争抢反而会拖慢整体速度。

导入时别直接管道执行压缩文件

mysqlpump生成的LZ4/ZLIB压缩文件不能直接丢给mysql客户端。比如用了--compress-output=LZ4,输出的是二进制压缩流,mysql根本认不了。必须先解压再导入:

lz4 -d backup.lz4 | mysql -u root -p

更麻烦的是兼容性问题:默认导出会包含CREATE USER和带DEFINER的视图。如果目标实例没有CREATE USER权限,或者缺失对应账号,导入会卡在CREATE ALGORITHM=那一行。解法有两个:

  • --skip-definer --users把用户权限单独导出;
  • 或者直接用--skip-users彻底跳过用户部分,然后手动处理权限。

MySQL 8.0.34+用户该考虑迁移了

mysqlpump在MySQL 8.0.34及之后版本已被官方标记为deprecated,2026年起新部署就不该再用它了。它只支持多线程导出,导入仍然是单线程,实际RTO并不理想。而且--default-parallelism对函数、事件、GRANT等全局对象完全无效,这些依然串行。

真正导出和导入都支持多线程的替代方案是MySQL Shell的util.dump_instance()。它支持chunk级并行、自动重试、进度回调——但注意它不生成SQL文件,而是输出目录结构,恢复方式完全不同。如果你还在用mysqlpump,建议尽早评估迁移路径。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。