Error number: MY-010534; Symbol: ER_RPL_RECOVERY_ERROR_READ_RELAY_LOG; SQLSTATE: HY000
Message: Error during –relay-log-recovery: Error reading events from relay log: %d
错误说明
MySQL错误MY-010534,号码ER_RPL_RECOVERY_ERROR_READ_RELAY_LOG,以及SQLSTATE HY000 是InnoDB跨读取relay log对象时出现的一个错误。该错误与跨复制出错后,再次复制时无法访问或打开可重用日志文件,并产生出此错误相关。此外,该错误也可能是由于重新启动了MySQL server之后,将relay log元数据从数据文件中恢复失败或不正确的结果。
常见案例
该错误主要出现在时,用户试图停止当前MySQL server或复制节点并重新启动服务器时,或使用以下操作导致服务器失败:
1、以非活动模式重新启动MySQL Server
2、在MASTER上关闭或以–skip-slave-start参数重新启动MySQL Server
3、在SLAVE上不等待主服务器可用而停止SLAVE或重新启动SLAVE
4、系统停电行或MySQL宕机
解决方法
解决此错误的一般方法是,先停止MySQL server重新启动,检查所有复制元数据是否已恢复,然后对复制服务器进行检查来确定是否可以重新启动。另外,也可以尝试使用mysql_upgrade,或者采取MySQL数据文件恢复的方式来解决该问题。
此外,检查复制节点上的复制服务器是否可用,并尝试恢复可重用日志文件,以及检查relay log队列(relaylog queue)中的事务是否完整,也是需要考虑的解决此问题的第一步。
最后,另外一个解决此问题的方法是立即将所有未完成的事务都rollback掉,以便完成新的复制路径。