在MySQL复制实例上,我收到以下错误消息:
[ERROR] MYSQL_BIN_LOG :: purge_logs Was called Expired with file / db-space-no-connected-cpa / DBMS / dxnc6sla / arch / not listed in the index .你能给我一个解决办法的主意吗?先谢谢你
发布于 2016-09-30 16:05:09
启用原木箱后,MySQL将将已完成的SQL事务记录到二进制日志中。
二进制日志由一个文本文件维护,该文本文件的名称与二进制日志相同,但文件扩展名为.index。
例如,假设您拥有log-bin=/mysqllogs/mysql-bin并启动mysqld。
将有文件放在/mysqllogs中
mysql-bin.000001
mysql-bin.index索引文件将包含所有二进制日志的名称。
在本例中,它将包含mysql-bin.000001
随着时间的推移,二进制日志将累积起来,在/mysqllogs中会出现类似的情况。
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.indexmysql-bin.index将包含以下内容
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004基于变量过期 (如果大于0)和最大值_联木_大小,mysqld将对二进制日志进行自己的旋转和过期。
如果您执行以下操作
cd /mysqllogs
rm -f mysql-bin.000001
rm -f mysql-bin.000002这将禁用mysqld的日志旋转机制。为什么?
/mysqllogs文件夹将具有
mysql-bin.000003
mysql-bin.000004
mysql-bin.index但mysql-bin.index仍将包含以下内容
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004mysqld主动使用索引文件来验证/mysqlvar中列出的mysql-bin.index中的每个文件在执行任何旋转或过期之前是否存在。
因此,您不应该让操作系统删除二进制日志。让我来做吧。
我以前写过这篇文章
May 23, 2016:错误1236 -“无法在二进制日志索引文件中找到第一个日志文件名”Apr 23, 2013:删除mysql-bin文件安全吗?关闭mysqld,编辑.index文件,使内容与磁盘上的现有二进制日志相匹配,并启动mysqld。我以前曾建议过这样做(Mysql绑定日志存在,显示二进制日志为空.)
https://dba.stackexchange.com/questions/151129
复制相似问题