首页/数据/备份与容灾速查/mydumper 多线程逻辑备份
数据库与云备份56 条

mydumper 多线程逻辑备份

社区常用多线程逻辑备份工具:按表并行导出并生成元数据文件,myloader 并行恢复,适合大库快速逻辑备份与按表恢复。

备份与容灾速查数据更新于 2026-10-13

mydumper 多线程逻辑备份

面向 MySQL/MariaDB 的多线程逻辑备份工具:按表并行导出,每张表生成独立的 SQL(可压缩)文件并附带 metadata 元数据,配套的 myloader 支持并行恢复。相比 mysqldump 的单线程串行,它在几百 GB 级别的逻辑备份上能把窗口压缩数倍,而且可以只挑几张表恢复。

基本信息

适用平台Linux;对 MySQL 5.7/8.0 与 MariaDB 的支持情况随版本不同
权限要求SELECT、LOCK TABLES、SHOW VIEW、TRIGGER、RELOAD、REPLICATION CLIENT 等
产物结构每表一个 SQL/压缩文件,另有 metadata 记录位点与版本
常用参数-t 线程数、-c 压缩、-B 指定库、-G 触发器、-E 事件、-R 存储过程

典型使用场景

  • 大库日常逻辑备份:多线程导出,控制在维护窗口内完成
  • 单表恢复:备份目录里直接挑目标表文件,用 myloader 只导这一张
  • 跨环境取数:把生产库导出恢复到测试环境,元数据保证可重复
  • 迁移前留底:逻辑备份可读性好,便于人工核对对象数量
  • 轻量级 PITR 准备:记录备份位点,配合 binlog 补齐变更

备份与恢复

备份与恢复
# 备份:4 线程压缩导出,包含触发器、事件与存储过程
mydumper -u root -p -B appdb -o /backup/appdb-2026-10-12 \
  -t 4 -c -G -E -R --trx-consistency-only
# 查看产物:每表一个文件 + metadata
ls -lh /backup/appdb-2026-10-12 | head
# 恢复到新库(并行)
myloader -u root -p -B appdb_restore -d /backup/appdb-2026-10-12 -t 4
# 只恢复特定表
myloader -u root -p -B appdb_restore -d /backup/appdb-2026-10-12 \
  -o -T appdb.orders,appdb.users

参数选择

参数作用注意
-t并行线程数过高会给源库与磁盘带来明显压力
-c压缩产物省空间,恢复时多一步解压开销
--trx-consistency-only只保证事务一致InnoDB 场景常用,非事务引擎表可能不一致
-G/-E/-R包含触发器/事件/存储过程漏掉会导致恢复后功能缺失
上线前核对 mydumper 版本与 MySQL 版本的兼容矩阵,避免导出对象缺失。锁策略参数(如 --less-locking)要按存储引擎选择,对繁忙实例使用默认配置可能产生锁等待。
备份目录里的 metadata 记录了导出时的位点信息与版本,是配合 binlog 做时间点恢复的依据,不要只留 SQL 文件而丢掉它;同时用它核对本次导出是否包含全部目标库表。

易错点

  • 权限不足时触发器与视图静默缺失:恢复后要核对对象数量,不能只看任务成功
  • 版本不兼容:新版实例上导出旧版工具不认识的语法,恢复阶段才报错
  • 线程数开得过大:备份把 IO 打满,影响线上业务,应先小规模实测
  • 只备份不记录位点:无法配合 binlog 做时间点恢复,逻辑备份的恢复粒度过粗

数据来源与参考

  • mydumper 官方文档(GitHub README)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌