安装xtrabackup
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-24
备份主库
# 在主节点上
xtrabackup --defaults-file=/etc/my.cnf -uroot -p --socket=/data/mysql/data/mysql.sock -P3306 --backup --parallel=4 --target-dir /home/xtr
注:指定并行parallel参数可以加速备份,但会消耗更多系统资源,请视实际情况使用合适的值。
预处理备份文件
# 在主节点上
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir /home/xtr
将生成的备份文件复制到从节点
# 停从库
kill <mysqld 进程pid>
或systemctl stop mysqld
# 检查从库mysqld进程是否退出
ps -ef|grep mysqld
# 删掉从库数据
rm -rf /home/mysql/data
注:可能还需要清除遗留的binlog文件等。
# 在主节点上
scp -r /home/xtr/* root@10.0.35.xx:/data/mysql/data
启动从库
# 设置/msdb/data目录权限
chown -R mysql:mysql /data/mysql/data
chmod -R 777 /data/mysql/data
# 启动从库
/etc/init.d/mysql start
设置从库复制
# 检查并设置GTID状态
less从data/xtrabackup_info文件中查到当前已应用GTID值。
select @@global.gtid_executed不准确
# 设置要跳过的事务GTID范围
reset master; set global gtid_purged='eedc7e98-3c0c-11ee-9208-00155d127d0e:1-14854267'; |
# 配置并启动同步
change master to master_host='db1',master_user='repl',master_password='xxx, master_port=3316,MASTER_AUTO_POSITION=1,MASTER_CONNECT_RETRY=1,MASTER_RETRY_COUNT=86400; start slave; show slave status\G |
至此,从库恢复完毕。