首页/数据/数据库速查/用 XtraBackup 备份建从库(GTID 版)
主从复制与高可用53 条

用 XtraBackup 备份建从库(GTID 版)

标准建从库路径:源端 xtrabackup 全备 → 拷贝到新实例 → prepare + copy-back → 依据 xtrabackup_binlog_info 设置 gtid_purged → AUTO_POSITION 拉起复制。

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

完整步骤

完整步骤
# 源端:全备
xtrabackup --backup --user=backup --password='***' \
  --target-dir=/data/backup/base_for_replica
# 查看备份的位点/GTID 信息
cat /data/backup/base_for_replica/xtrabackup_binlog_info
# 形如:mysql-bin.000045 12345678 3a7f1e3b-...:1-5000000

# 新实例:prepare 并恢复
xtrabackup --prepare --target-dir=/data/backup/base_for_replica
xtrabackup --copy-back --target-dir=/data/backup/base_for_replica \
  --datadir=/var/lib/mysql
chown -R mysql:mysql /var/lib/mysql

从库端配置复制

从库端配置复制
-- 启动实例后
RESET MASTER;
SET GLOBAL gtid_purged = '3a7f1e3b-...:1-5000000';   -- 用上面读到的值
CHANGE REPLICATION SOURCE TO SOURCE_HOST='10.0.0.10', SOURCE_USER='repl',
  SOURCE_PASSWORD='***', SOURCE_AUTO_POSITION=1;
START REPLICA;
xtrabackup_binlog_info 的 GTID 集必须原样设置;8.0 也可用 --set-gtid-purged 相关选项在备份侧处理。

易错点

  • gtid_purged 抄错一位:从库差集判断全错,数据静默缺失
  • copy-back 前 datadir 非空:直接报错或残留旧文件,务必清空

数据来源与参考

  • Percona XtraBackup 文档: 备份建从库
  • MySQL 8.0 Reference Manual: Setting Up Replication with GTIDs

相关工具

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