利用mysqldump在gtid环境下重搭主从

背景:

主库:158.222.188.185

从库:158.222.188.186

mysql数据库:5.6

主从运行一段时间,由于测试人员不小心操作了从库,导致主从不一致,现在需要利用一份从库的数据。

主从是使用了gtid。

执行需要下面几个简单步骤

1.在从库上执行mysqldump,-A表示全库导出

mysqldump -uroot -p123456 -h158.222.188.185   --single-transaction --master-data -A > /root/185.sql

2.查看下导出的数据。

more 185.sql

可以找到

set @@GLOBAL.GTID_PUGED='6c490f06-c0f-11-bd22-0894e27829d:1-6781625';

change master to master_log_file='mysql-bin.000014',master_log_pos=210034;

3.在从库上执行,stop slave; 停止主从

4. 关闭auto_position

change master to  master_auto_positon=0;

5.打开show slave status\G 可以看到excuted_gtid_set由两串gtid组成,一串是master写入过数据,从库读relaylog这set集合,一串是由于自身的,由于误操作,执行过写入产生的日志。


执行 reset master;清空binlog

执行 reset slave;

或者

如果要执行 RESET SLAVE ALL是清除从库的同步复制信息、包括连接信息和二进制文件名、位置。

6.在从库上导入数据,可以以下的办法,或者使用 source都可以

mysql -uroot -p123456

7.如果之前执行下的是reset slave all

那么需要重连主库信息,

CHANGE MASTER TO MASTER_HOST='158.222.188.185',

MASTER_PORT=3306,

MASTER_USER='repl',

MASTER_PASSWORD='replpass',

MASTER_CONNECT_RETRY=10,

8.将这讲句话重新执行下

set @@GLOBAL.GTID_PUGED='6c490f06-c0f-11-bd22-0894e27829d:1-6781625';

change master to master_log_file='mysql-bin.000014',master_log_pos=210034;

然后start slave ;

你可能感兴趣的:(利用mysqldump在gtid环境下重搭主从)