3

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

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

现在 SLAVE 有状态:

从二进制日志读取数据时,从 master 收到致命错误 1236:“在二进制日志索引文件中找不到第一个日志文件名”

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

这些文件已经就位,但我如何强制 master 'unpurge' 它的日志列表(所以它们在 SHOW BINARY LOGS 中可见)?

4

1 回答 1

3

好的,我成功了。然而,这个解决方案并不完美/100% 安全。

我已将所有文件名输入到我的 mysql-bin.index

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

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

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

MASTER 已准备就绪。

现在已经足够了

SLAVE STOP;

SLAVE START;

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

于 2011-12-05T19:55:43.140 回答