Error number: 4022; Symbol: ER_GRP_RPL_RECOVERY_CHANNEL_STILL_RUNNING; SQLSTATE: HY000
Message: The group_replication_recovery channel is still running, most likely it is waiting for a database/table lock, which is preventing the channel from stopping. Please check database/table locks, including the ones created by backup tools.
Error 4022: ER_GRP_RPL_RECOVERY_CHANNEL_STILL_RUNNING
错误说明:
Error 4022:ER_GRP_RPL_RECOVERY_CHANNEL_STILL_RUNNING 是指MySQL在分组复制中,一个实例中,在最大应用程序恢复时发现存在更多正在运行的恢复信道,而不是预期的最多一个恢复信道。这表明可能出现了某种错误导致了MySQL无法正确控制恢复信道,只有当所有额外创建的恢复信道都处于关闭状态时,MySQL才能安全的继续分组复制的工作。
一般情况下,MySQL在多个实例之间实现分组复制时,每个实例上都有一个恢复信道,用于从更新数据集和服务器间传输数据。但是,有时MySQL会发现其在实例上运行更多的恢复信道,这通常表明MySQL无法正确控制恢复信道,这时就会出现Error 4022:ER_GRP_RPL_RECOVERY_CHANNEL_STILL_RUNNING的错误。
解决方法:
1)首先,执行SHOW PROCESSLIST语句,检查当前MySQL服务器上是否有多个恢复信道在运行。
2)然后,重新启动你的MySQL服务器,或者使用KILL语句关闭任何额外的恢复信道。
3)最后,使用SET GLOBAL group_replication_recovery_use_slave_pos语句确保MySQL事务复制正常运行,确保从系统中删除所有无效事务,然后重新启动你的MySQL服务器。