首批通过分布式安全可靠测评,为关键业务系统打造
全量校验因时区不同导致校验失败
更新时间:2025-04-24 02:36
本文介绍在使用 OMS 将数据从 TiDB 迁移到 OceanBase 数据库 MySQL 兼容模式时,全量校验因时区不同导致校验失败的解决方案。
问题现象
使用 OMS 将 TiDB 数据同步到 OceanBase 数据库 MySQL 兼容模式时,在全量校验阶段出现校验不一致问题。然而,分别查询 TiDB 数据库和 OceanBase 数据库,查询结果却是一致的。
问题原因
从不一致的数据来看,源端值和目标端值刚好相差 8 个小时,这表明可能是时区配置存在问题。
解决方案
分别查看 TiDB 端和 OceanBase 端的时区设置:
TiDB 的时区设置为 SYSTEM
OceanBase 的时区设置为 +08:00
建议将两端的时区调整为一致。
如果无法调整时区,则需要在 OMS 全量校验时指定时区。在配置中加入时区配置,示例如下:
"coordinator":{ "timezone": string "+08:00" } "sink":{ "timezone": string "+08:00" } "source":{ "timezone": string "+08:00" }
通过在 Full-Verification 组件配置中添加 "datasource.timezone" : string "+08:00",可以确保全量校验时使用正确的时区进行比对。