binlog恢复的数据中,发现部分表的数据量少了一些

【 TiDB 使用环境】
源库:tidb 4.0.8
目标:全新的 tidb 5.03集群

【备份和数据迁移策略逻辑】
备份:使用dumpling全量导出数据。
恢复:通过lighning恢复新目标集群。
binlog备份:集群中配置有binlog pump及drainer,drainer存储数据为本地。
binlog恢复:把drainer备份好的binlog,取dumpling导出数据的tso,通过reparo恢复该tso后的数据。

【问题】 当前遇到的问题
lightning恢复的数据是正常的。
binlog恢复的数据中,发现部分表的数据量不对,少了一些数量。

想知道我要怎样排障?

3 个赞

可以详细的反馈一下具体少了什么样的数据 ?可以先通过 sync-diff-inspect 工具查看一下看看上下游是否数据一致。

1 个赞

我通过时间,搜索同一时间段里的数据,发现源库有2404条记录,但binlog恢复后,仅852条记录。
搜索的sql如下,通过指定的时间,确认一定是binlog恢复的数据:
SELECT * FROM task_job_log WHERE update_date >= ‘2021-07-22 00:00:00’ AND update_date <= ‘2021-07-23 00:00:00’;

reparo.toml的中配置safe-mode = true,不知道跟这个是否相关,因为不配置这个的话,总提示,无法恢复:
Duplicate entry ‘20926337-20919524-4190157’ for key ‘uniq_cla_tea_stu’

1 个赞

查了多个表,都存在数据丢失情况。
如lighning全量恢复的时候为7.20日,7.20日前的数据,与生产对比,是一样的。
但7.20后的数据,使用binlog恢复,就会发现7.21起binlog恢复的数据与生产对比,缺了很多。

没有关系

需要确认一下 binlog 日志输出,如果只是数据丢失,应该是有报错的。

即在binlog中搜索error,来检查是否binlog在输出过程中,就出现问题?

还是看reparo在恢复的过程中,是否有报错?
如何看reparo的报错,这个可以教一下吗?

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。