我们的MySQL从站处于closures状态,从站上的中继文件已损坏

我们的从服务器磁盘驱动器已满,复制停止,所以我们清空了空间,并再次开始复制。 那么,一切都很好,直到我们遇到了一个损坏的中继bin文件(用mysqllogbin来保证)。

我们做什么? 我们可以删除损坏的bin文件,并重新启动,希望它会重build该文件?

如果没有什么帮助,任何帮助都会很大。

我们运行5.1,有一个主人,一个奴隶。

我可能会缺less信息,或者不够清楚,如果是,请告诉我,我可以填写你的信息。

SHOW SLAVE STATUS\G 

logging显示的Relay_Master_Log_FileExec_Master_Log_Pos的值,显示成功执行的主站二进制日志中的最后一个位置。

使用CHANGE MASTER命令让从站再次从该点复制二进制日志,用新的日志replace中继日志:

 STOP SLAVE; CHANGE MASTER TO master_log_file='<Relay_Master_Log_File>', master_log_pos=<Exec_Master_Log_Pos>; -- replace those two tags with the values you recorded earlier START SLAVE; 

如果损坏,您可以尝试跳过1条logging。 你可以这样做:

 set global sql_slave_skip_counter=1; start slave; 

然后做

 show slave status\G 

看看是否可以。

您可以重复几次,直到开始正确复制。

另一方面,如果你觉得你丢失了太多的数据,并且从属设备不同步,那么你可以做一个新的主设备的mysqldump重新同步它们。

最后,maatkit有一个同步工具,将在两个表上执行校验和,并尝试为您同步它们。