【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
用sync_diff_inspector对比数据,下游比上游多一行
±------±-----±-----±--------------------+
| id | c1 | c2 | ctamp |
| 30001 | NULL | NULL | 2023-03-30 10:26:51 |
ctamp字段是timestamp类型,定义: ctamp
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
生成的修复sql是:
DELETE FROM dbtest13
.t12
WHERE id
= 30001 AND c1
is NULL AND c2
is NULL AND ctamp
= ‘2023-03-30 02:26:51’ LIMIT 1;
ctamp 条件是utc时间,和原值查8小时,怎么解决啊
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】
表是否有主键?没有主键或唯一索引,会导致生成的修复文件不对
有主键,感觉是timestamp类型 时区问题,差8小时
testuser112@192.168.133.112:3306 11:47:42 [dbtest13]>select *from t12;
±------±-----±-----±--------------------+
| id | c1 | c2 | ctamp |
±------±-----±-----±--------------------+
| 1 | a | 12 | 2023-03-27 14:33:53 |
| 2 | a | 13 | 2023-03-27 14:34:06 |
| 3 | a | 14 | 2023-03-27 14:34:07 |
| 4 | a | 15 | 2023-03-27 14:34:09 |
| 30001 | NULL | NULL | 2023-03-30 10:26:51 |
±------±-----±-----±--------------------+
5 rows in set (0.00 sec)
testuser112@192.168.133.112:3306 11:47:44 [dbtest13]>show create table t12\G
*************************** 1. row ***************************
Table: t12
Create Table: CREATE TABLE t12
(
id
bigint NOT NULL AUTO_INCREMENT,
c1
varchar(2) COLLATE utf8mb4_bin DEFAULT NULL,
c2
int DEFAULT NULL,
ctamp
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=30002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
1 row in set (0.00 sec)
SHOW VARIABLES LIKE ‘%zone%’,看下
另外看下sync_diff_inspector执行的机器上的时区看下