首页/数据/数据库速查/MySQL Shell util.dumpSchemas 并行备份
备份与恢复56 条

MySQL Shell util.dumpSchemas 并行备份

MySQL Shell 8.0 内置的逻辑备份工具:聚合 mysqldump 思路并支持并行、压缩、断点续传、一致性快照,适合云上与本地大库。

数据库速查数据更新于 2026-10-13

MySQL Shell dump 工具是什么

MySQL Shell 8.0 内置 util.dumpSchemas / util.dumpInstance 逻辑备份工具,把 mysqldump 的思路升级为并行版本:多线程导出、zstd 压缩、可断点续传、附带一致性快照信息。恢复用 util.loadDump,同样多线程。它基于 X Protocol(默认 33060 端口),服务端需要启用 X Plugin,因此在老实例或部分云实例上不可用。

基本信息

备份util.dumpSchemas(["库名"], "/路径")
恢复util.loadDump("/路径")
连接方式需要 X Protocol(默认端口 33060,服务端启用 mysqlx)
特点并行、zstd 压缩、断点续传、一致性保证
版本要求MySQL 8.0 起,源与目标版本跨度不能太大

典型使用场景

  • 大库备份:单线程 mysqldump 太慢时,用并行导出缩短备份窗口
  • 跨实例搬迁:8.0 到 8.0 之间搬库,比逻辑导出导入更省时间
  • 云上迁移:源端支持 X Protocol 时可直接导出,无需在服务器上落中间文件
  • 断点续传:网络中断后从已完成的块继续,不必整库重来
  • 压缩存储:默认 zstd 压缩减小备份体积,适合长期留存

Shell 内执行

Shell 内执行
// 连接示例:mysqlsh root@localhost:33060
// 导出单个库,指定线程数与压缩,开启一致性快照
util.dumpSchemas(['appdb'], '/data/backup/dump_appdb', {
  threads: 8,
  compression: 'zstd',
  consistent: true
});
// 恢复时同样指定线程数,目录不要手工改动
util.loadDump('/data/backup/dump_appdb', {threads: 8});

与 mysqldump 对比

维度mysqldumpShell dump 工具
并行度单线程多线程,按分块并行
压缩需外部 gzip 管道内置 zstd 选项
续传不支持支持从已完成分块继续
连接协议经典协议 3306X Protocol 33060
版本兼容较宽源与目标版本跨度受限
dump 与 load 依赖 X Protocol。服务端未启用 X Plugin 时连接直接失败,先用 mysqlsh --sql 通过经典协议连一次,确认实例可达后再排查 X Protocol 端口与插件。
导出目录会包含分块文件与元数据 json,恢复时不要手工改文件名或目录结构,否则工具会因校验失败而拒绝加载。

易错点

  • 服务端没启用 X Plugin 就直接用 loadDump:连接失败且报错信息不明显,先确认 mysqlx 端口是否监听
  • 把 8.0 导出的目录恢复到 5.7:版本跨度不受支持,加载阶段会报不兼容错误
  • 导出目录与恢复目标不在同一主机时手工裁剪文件:破坏分块与元数据的对应关系,导致加载失败
  • 线程数设得过高:导出与恢复都会给实例带来可观负载,threads 应按 CPU 与 IO 能力设置而不是越大越好
  • 完全依赖工具而不做恢复演练:备份可用性只有恢复验证过才算确认,定期在测试实例上跑一次 loadDump

数据来源与参考

  • MySQL Reference Manual: MySQL Shell dump utilities

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌