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 即可。