安装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不准确

xtra方式不停机进行主从同步_主从同步

# 设置要跳过的事务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

至此,从库恢复完毕。

xtra方式不停机进行主从同步_主从同步_02