恢复已清除的mysql binlog文件

时间:2011-12-05 11:30:52

标签: mysql replication mysqlbinlog

我在一对服务器上设置了复制。一个是主人,第二个是奴隶。

最近在master上,binlog文件被过早清除(通过文件名,所以mysql没有阻止过早删除文件)。

现在SLAVE的状态为:

  

从二进制日志中读取数据时,来自master的致命错误1236:'无法在二进制日志索引文件中找到第一个日志文件名'

我不想恢复丢失的binlog文件,因此slave会从它完成的点重新开始读取。

这些文件已经存在,但我怎样才能强制主人“清空”它的日志列表(所以它们在SHOW BINARY LOGS中可见)?

1 个答案:

答案 0 :(得分:3)

好的,我做到了。然而,这种解决方案并不完美/ 100%安全。

我已将所有文件名输入myql-bin.index

find /var/log/mysql/ -wholename '/var/log/mysql/mysql-bin.0*' | sort > mysql-bin.index

(如果你将使用它首先检查mysql-bin.index文件中的文件名格式并根据你的需要进行调整)

然后重启mysql并在启动时重新加载该文件。

MASTER准备就绪。

现在已经足够了

SLAVE STOP;

SLAVE START;

在SLAVE上,它将继续他的工作。