MySQL Error number: MY-010809; Symbol: ER_BINLOG_FILE_BEING_READ_NOT_PURGED; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-010809; Symbol: ER_BINLOG_FILE_BEING_READ_NOT_PURGED; SQLSTATE: HY000

Message: file %s was not purged because it was being read by thread number %u

错误说明

MY-010809; ER_BINLOG_FILE_BEING_READ_NOT_PURGED; 异常是指在MySQL中执行PURGE BINARY LOGS命令时,MySQL错误提示“一个正在被复制的 binlog 日志文件不允许被清理”。即正在被应用程序正在读取的binlog日志文件不能进行清理操作。

常见案例

正在被应用程序正在读取的binlog日志文件不能进行清理操作。这种案例经常在MySQL复制环境中发生,因为使用Purge Binary Logs命令清理binlog日志文件会影响复制的运行,因为slave节点可能正在读取或者复制相关的binlog日志文件,这就可能包含在清理操作中。

解决方法

首先,您可以分析复制延迟,确定复制是否处于开放状态,因此在清理binlog日志文件之前,您应该确认它不会影响复制过程。

其次,您可以尝试使用命令“STOP SLAVE IO_THREAD”,如果无法停止复制进程,您可以停止MySQL实例,然后删除binlog日志文件,最后再重新启动MySQL实例,以清理已锁定的binlog日志文件的文件。

最后,您可以使用innodb_forced_recovery参数将innodb设置为上锁状态,然后在slave端重新启动复制和purge操作,以清理binlog日志文件。


数据运维技术 » MySQL Error number: MY-010809; Symbol: ER_BINLOG_FILE_BEING_READ_NOT_PURGED; SQLSTATE: HY000 报错 故障修复 远程处理