Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 TiDB 版本】
7.5.4
主从集群都是7.5.4版本,cdc主从同步的时候报ErrMySQLDuplicateEntry,
按照官方文件的说明,safe-mode无论设置成true或者false都不应该报主键冲突。
![]()
这个表表结构发下看看呢。
CREATE TABLE bike_work_mode_log (
id bigint(19) NOT NULL /*T![auto_rand] AUTO_RANDOM(5) */ COMMENT ‘主键’,
imei varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT ‘IMEI’,
vin varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘车架号’,
protocol smallint(5) DEFAULT ‘0’ COMMENT ‘协议版本。拟使用0x0100、0x0204、0x0303等,会转换成10进制存储’,
packet_id varchar(16) DEFAULT NULL COMMENT ‘报文ID’,
oper varchar(64) DEFAULT NULL COMMENT ‘操作’,
id_as_hex varchar(16) DEFAULT NULL COMMENT ‘16进制指令ID’,
down_biz_packet varchar(256) DEFAULT NULL COMMENT ‘下发业务报文’,
server_id varchar(16) DEFAULT NULL COMMENT ‘服务器ID’,
send_time datetime(3) DEFAULT NULL COMMENT ‘发送到MQ的时间’,
value varchar(512) DEFAULT NULL COMMENT ‘值’,
data_status tinyint(2) DEFAULT NULL COMMENT ‘数据状态,1-仅下发,-2仅上传,3-上下完整’,
result smallint(5) DEFAULT NULL COMMENT ‘操作结果,如有’,
iot_time datetime(3) DEFAULT NULL COMMENT ‘IOT报文生成时间’,
create_time datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT ‘创建时间’,
packet varchar(512) DEFAULT NULL COMMENT ‘解密后的报文’,
client_id tinyint(4) DEFAULT NULL COMMENT ‘0-app;1-web后台’,
user_id bigint(20) DEFAULT NULL COMMENT ‘user_id’,
mode tinyint(4) DEFAULT ‘0’ COMMENT ‘方式0-iot;1-蓝牙’,
account varchar(32) DEFAULT NULL COMMENT ‘账户’,
mac varchar(32) DEFAULT NULL COMMENT ‘蓝牙mac’,
reason varchar(255) DEFAULT NULL COMMENT ‘蓝牙异常原因’,
yxt_version varchar(16) DEFAULT NULL COMMENT ‘云销通版本号’,
bike_cmd_rec_id bigint(20) NOT NULL COMMENT ‘t_bike_cmd_rec.id’,
work_mode tinyint(4) NOT NULL COMMENT ‘1-限制/临时模式;0-工厂模式;2-激活/用户模式’,
update_time datetime(3) NOT NULL,
yxt_code varchar(64) DEFAULT ‘’ COMMENT ‘云销通编码’,
PRIMARY KEY (id) /*T![clustered_index] CLUSTERED */,
KEY idx_vin_c (vin,create_time),
KEY feng (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![auto_rand_base] AUTO_RANDOM_BASE=48640376 */ COMMENT=‘车辆工作模式log表’ /*T![ttl] TTL=create_time + INTERVAL 180 DAY */ /*T![ttl] TTL_ENABLE=‘OFF’ */ /*T![ttl] TTL_JOB_INTERVAL=‘1h’ */
有数据不一致吗?cdc 会自动重启,然后把 safe mode 变为 true,再进行同步的

