前提介绍:TeleDB for mysql中高可用涉及到的组件主要包块mysql、agent 、zookeeper、keeper,通过拷贝主库的方式来恢复数据库集群需要保证主库没有gtid的事物在继续写入,所以首先要先暂停业务,并且关闭集群的agent组件(agent会定时像数据库上报心跳-写入gtid事物),故恢复方法如下:
1、停掉业务,可以直接通过停掉keepalived,保证vip不对外提供服务;
2、 关闭待恢复从库的agent服务;
3、 进入待恢复从库数据库执行stop slave操作;
4、 关闭待恢复从库数据库;
5、 将待恢复从库的整个mysql_data目录mv成mysql_data.old
6、 关闭主库agent(防止心跳事物写入),即应当保持主库下面的这个值不再变化;
7、 将主库的mysql_data目录拷贝到从库;
8、 启动主库agent;
9、 去待恢复从库的data目录下面删除auto.cnf参数
10、启动待恢复从库数据库,启动时候带上skip-slave-start参数
/teledb/test0410/db7051//bin/mysqld_safe --defaults-file=/teledb/test0410/db7051/etc/mysql7051.cnf --skip-slave-start &
11、进入待恢复的从库,执行以下操作;
reset slave;reset slave all;
reset master;
set global gtid_purger=”eea*******1-12766”,也就是步骤6中的那个值;
12、开启从库agent,可以看到主从复制正常