MySQL slave relay log太多,master bin log 已经被purged,只能重做主从

slave上提示空间不足。查看slave status,发现很久之前就报错,没有和master同步了。由于是测试系统,没有做全面的监控,还是该打屁股。由于在master上启用了bin log purged功能,导致没有同步的数据对应的bin log已经被purged了。所以只能重新做主从了。

操作如下过程:

master上备份数据:

mysqldump -uroot -p –set-gtid-purged=on

–master-data=1 –single-transaction mydb  >/bak/mydb.sql
在备份的sql文件的开头,找到如下内容:
CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.002028′,MASTER_LOG_POS=488992
slave上操作:
mysql> stop slave;
mysql> reset slave;
mysql> reset master;
mysql>drop database mydb;
mysql>flush logs;
mysql>create database mydb;
mysql>change master to master_auto_position=0
mysql>mysql -uroot -p mydb</dblogs/mydb.sql
mysql>change master to master_host=’x.x.x.x’,master_port=3306,master_user=’repl’,master_password=’12345678′,MASTER_LOG_FILE=’bin.000266′, MASTER_LOG_POS=383542744;
mysql(salve)>start slave;
mysql(salve)>show slave status\G
如果数据量大,恢复时间要很长,这个过程很煎熬。