首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL复制: purge_logs提供错误

MySQL复制: purge_logs提供错误
EN

Database Administration用户
提问于 2016-09-30 12:44:42
回答 1查看 983关注 0票数 4

在MySQL复制实例上,我收到以下错误消息:

代码语言:javascript
复制
[ERROR] MYSQL_BIN_LOG :: purge_logs Was called Expired with file / db-space-no-connected-cpa / DBMS / dxnc6sla / arch / not listed in the index .

你能给我一个解决办法的主意吗?先谢谢你

EN

回答 1

Database Administration用户

发布于 2016-09-30 16:05:09

分析

启用原木箱后,MySQL将将已完成的SQL事务记录到二进制日志中。

二进制日志由一个文本文件维护,该文本文件的名称与二进制日志相同,但文件扩展名为.index

例如,假设您拥有log-bin=/mysqllogs/mysql-bin并启动mysqld。

将有文件放在/mysqllogs

代码语言:javascript
复制
mysql-bin.000001
mysql-bin.index

索引文件将包含所有二进制日志的名称。

在本例中,它将包含mysql-bin.000001

随着时间的推移,二进制日志将累积起来,在/mysqllogs中会出现类似的情况。

代码语言:javascript
复制
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.index

mysql-bin.index将包含以下内容

代码语言:javascript
复制
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004

基于变量过期 (如果大于0)和最大值_联木_大小,mysqld将对二进制日志进行自己的旋转和过期。

如果您执行以下操作

代码语言:javascript
复制
cd /mysqllogs
rm -f mysql-bin.000001
rm -f mysql-bin.000002

这将禁用mysqld的日志旋转机制。为什么?

/mysqllogs文件夹将具有

代码语言:javascript
复制
mysql-bin.000003
mysql-bin.000004
mysql-bin.index

mysql-bin.index仍将包含以下内容

代码语言:javascript
复制
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004

mysqld主动使用索引文件来验证/mysqlvar中列出的mysql-bin.index中的每个文件在执行任何旋转或过期之前是否存在。

因此,您不应该让操作系统删除二进制日志。让我来做吧。

我以前写过这篇文章

溶液

关闭mysqld,编辑.index文件,使内容与磁盘上的现有二进制日志相匹配,并启动mysqld。我以前曾建议过这样做(Mysql绑定日志存在,显示二进制日志为空.)

试试看!

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/151129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档