-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Closed
Description
canal版本:1.1.6
mysql版本:8.0.29
日志信息
2022-06-13 03:40:54.806 [MultiStageCoprocessor-other-example-0] WARN com.taobao.tddl.dbsync.binlog.LogDecoder - Skipping unrecognized binlog event Unknown type:41 from: binlog.000005:114150465
2022-06-13 03:41:39.967 [MultiStageCoprocessor-other-example-0] WARN com.taobao.tddl.dbsync.binlog.LogDecoder - Skipping unrecognized binlog event Unknown type:41 from: binlog.000005:114155694
查询MySQL事件信息
show binlog events in 'binlog.000005' from 114155694 limit 5;
Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
---|---|---|---|---|---|
binlog.000005 | 114155694 | Anonymous_Gtid | 1 | 114155773 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
binlog.000005 | 114155773 | Query | 1 | 114155856 | BEGIN |
binlog.000005 | 114155856 | Table_map | 1 | 114155931 | table_id: 107 (tag.qrtz_scheduler_state) |
binlog.000005 | 114155931 | Update_rows | 1 | 114156115 | table_id: 107 flags: STMT_END_F |
binlog.000005 | 114156115 | Xid | 1 | 114156146 | COMMIT /* xid=2835988 */ |
排查过程
查看LogEvent类中的代码,存在对事件类型41的定义
/* mysql 8.0.20 */
public static final int TRANSACTION_PAYLOAD_EVENT = 40;
public static final int MYSQL_ENUM_END_EVENT = 41;
查询MySQL手册:https://dev.mysql.com/doc/internals/en/event-classes-and-types.html
手册中有类似名称的事件类型(ENUM_END_EVENT),但是没有解释具体含义
PREVIOUS_GTIDS_LOG_EVENT= 35,
ENUM_END_EVENT
疑问
项目本身使用了quartz框架,猜测是quartz框架自动查询数据库表的时候,MySQL生成了一个41类型的事件,事件内容为分配下一个全局事务ID为“匿名的”,本身不清楚MySQL这块儿的处理逻辑,这个日志输出可以忽略吗?