备份还原:mydumper

MySQL 备份:mydumper

MySQL/MariaDB 的并行逻辑备份工具,比 mysqldump 快得多(多线程并行 + 按表分片)。备份产物是一堆 SQL 文件(一个库/表一个文件,metadata 记位点)。适用于大库逻辑备份。装配:CentOS 示例 yum install mydumper / 其它发行版按需。

一、备份(mydumper)

# 全库备份(多线程并行)
mkdir -p /data/dbbak/$(date +%Y%m%d)
mydumper -u root -p '密码' -h 127.0.0.1 \
  --threads=8 --less-locking \
  --outputdir=/data/dbbak/$(date +%Y%m%d) \
  --compress=1 --ignore-sysdb=1 --verbose=3
# 说明:--compress=1 压缩、--ignore-sysdb=1 跳过系统库、--less-locking 减少锁

二、数据恢复(myloader)

myloader -u root -p '' -S /var/run/mysqld/mysqld.sock \
  --threads=8 --directory=/data/dbbak/$(date +%Y%m%d) \
  --verbose=3 --overwrite-tables
# --overwrite-tables:恢复时覆盖已存在表

三、GTID 一致性(无 -e 时)

mydumper 备份的 metadata 记录 Log:/Pos:(普通复制位点),是否含 GTID 取决于版本、不可依赖。若恢复时不加 -e,恢复事务不进 binlog、目标库 gtid_executed 为空,需手动 SET GLOBAL gtid_purged 补齐历史(见 MGR/GTID 流程),否则后续复制/MGR 会重放历史撞数据。

# 记录源端 GTID(在数据源执行)
mysql -N -e "SELECT @@GLOBAL.gtid_executed;"

# 恢复后(新节点、无复制通道时)
RESET MASTER;
SET GLOBAL gtid_purged = '<GTID>';

对比:mydumper 是并行逻辑备份(快于 mysqldump);要更快的 物理热备(不停服、含数据文件)用 XtraBackup;简单小库用 mysqldump 即可。

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录