MySQL集群备份需分层设计,优先物理备份(如xtrabackup),按主从、MGR、InnoDB Cluster类型差异化实施,同步保存位点/GTID、binlog及拓扑信息,并定期验证恢复有效性。
MySQL集群备份不能只靠单点导出,必须结合架构特点设计分层策略。核心是保障数据一致性、减少业务影响、支持快速恢复。
不同集群架构的备份逻辑差异很大:
--single-transaction和--master-data=2,记录位点便于搭建新从库。group_replication_single_primary_mode=ON时只在主节点写入,备份前检查SELECT MEMBER_ROLE, MEMBER_STATE FROM performance_schema.replication_group_members;确保目标节点状态为PRIMARY且ONLINE。mysqlsh配合util.dumpInstance()或u
til.dumpSchemas(),自动处理一致性快照和GTID信息,比手工备份更可靠。生产环境推荐以Percona XtraBackup做全量+增量物理备份:
xtrabackup --backup --target-dir=/backup/full_$(date +%F)
xtrabackup_checkpoints,命令如:xtrabackup --backup --incremental-basedir=/backup/full_2025-06-01 --target-dir=/backup/inc_2025-06-02
光有数据文件不够,恢复时需要完整上下文:
SHOW MASTER STATUS或SELECT BINLOG_GTID_POS()结果,记录起始位点或GTID集合。expire_logs_days=7),确保能前滚到任意时间点。cluster-prod-mgr-full-20250601.tar.gz。90%的备份失效发生在“以为能恢复”却没真正试过:
SELECT COUNT(*)和关键业务查询校验数据完整性。xtrabackup --prepare检查备份集是否可启动;用mysqldump --no-data快速验证SQL文件语法是否合法。不复杂但容易忽略。关键是按集群类型选对工具、留全日志链路、坚持验证。