【 TiDB 使用环境】生产环境
【 TiDB 版本】tidb-vv.5.4.3
【复现路径】业务正常的insert
【遇到的问题:
业务insert 数据报错主键冲突,重启tidb-server 会缓解,过一段时间又会出现这个主键冲突
表结构信息:
由于数据需要通过c’d’c 同步到下游hive ,使用auto_random 容易导致hive 中字段溢出的问题 ,因此使用自增ID
MySQL [dcflow]> show create table tblSeaSearch\G
*************************** 1. row ***************************
Table: tblSeaSearch
Create Table: CREATE TABLE `tblSeaSearch` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`eid` varchar(32) DEFAULT NULL,
`flowid` bigint(20) DEFAULT NULL,
`dataid` bigint(20) DEFAULT NULL,
`content` mediumtext DEFAULT NULL,
`nshead` varchar(128) DEFAULT NULL,
`alvl` int(11) DEFAULT '0',
`alen` int(11) DEFAULT '0',
`deleted` int(10) NOT NULL DEFAULT '0',
`ctime` int(10) NOT NULL DEFAULT '0',
`utime` int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
KEY `ctime` (`ctime`),
KEY `eid` (`eid`),
KEY `utime` (`utime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=41110159
tidb 日志信息
[2022/11/15 14:48:07.749 +08:00] [INFO] [conn.go:1121] ["command dispatched failed"] [conn=1245901] [connInfo="id:1245901, addr:10.32.11.109:35788 status:10, collation:utf8mb4_general_ci, user:dcflow_app"] [command=Execute] [status="inTxn:0, autocommit:1"] [sql="INSERT INTO `tblSeaSearch` (`flowid`,`dataid`) VALUES (?,?) [arguments: (0, 30001)]"] [txn_mode=PESSIMISTIC] [err="INSERT INTO `tblSeaSearch` (`flowid`,`dataid`) VALUES (?,?) [arguments: (0, 30001)]: [kv:1062]Duplicate entry '40376465' for key 'PRIMARY'"]
监控信息