MySQL Error number: 3086; Symbol: ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: 3086; Symbol: ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER; SQLSTATE: HY000
Message: When sql_replica_skip_counter > 0, it is not allowed to start more than one SQL thread by using ‘START SLAVE [SQL_THREAD]’. Value of sql_replica_skip_counter can only be used by one SQL thread at a time. Please use ‘START SLAVE [SQL_THREAD] FOR CHANNEL’ to start the SQL thread which will use the value of sql_replica_skip_counter.
Error number: 3086; Symbol: ER_REPLICA_CHANNEL_SQL_SKIP_COUNTER; SQLSTATE: HY000
错误说明:
此 MySQL 错误被编号为 3086,名称为 ER_REPLICA_CHANNEL_SQL_SKIP_COUNTER。它的 SQLSTATE 状态为 HY000。此错误指示当使用复制时,在 MySQL 复制管道中,无法对一些 SQL 语句设置复制计数器,这可能是由于 mysql.replication_group_member 表中内部错误导致的。
常见案例
这个 ER_REPLICA_CHANNEL_SQL_SKIP_COUNTER 错误可能在以下情况中发生:
•在 MySQL 复制过程中,用户试图设置一个新的复制计数器时,报告错误。
•用户收到 SQLSTATE 状态 HY000 的 ER_REPLICA_CHANNEL_SQL_SKIP_COUNTER 错误,无法对复制管道中的某些 SQL 语句设置复制计数器。
解决方法:
此错误的解决方法可能有以下几种:
•为该错误,可以先重启复制管道进行处理。
•如果重启复制管道不起作用,则用户可以删除 mysql.replication_group_member 表中的行,以解决这个错误。
•可以停止所有 slave 并关闭服务器,对 mysql.replication_group_member 表进行更正;然后重新开启服务器,并启动 slave,以恢复正常状态。
•可以使用以下 SQL 查询,来检查原始 channel_id 值是否与 mysql.replication_group_member 表中相同:
SHOW GLOBAL VARIABLES LIKE ‘channels_id’;
•用户也可以尝试手动重置位置值,使用 UPDATE CHANNEL_SQL_COUNTER 语句,该语句可以将复制计数器从源-目标服务器同步。