v7.1.5版本TiCDC创建主备集群的数据同步链路,在br备份和恢复全量数据后,同步增量数据失败

【 TiDB 使用环境】开发环境
【 TiDB 版本】v7.1.5
【复现路径】
1、在腾讯云新开了4台机器部署了tidb 7.1.5备用集群,并只在备集群部署了TiCDC组件,备集群和主集群版本一致;
2、在主备集群都执行SET GLOBAL tidb_gc_enable=FALSE; 关闭了gc;
3、在主集群使用br backup full 备份全库到NFS存储,记录BackupTS,数据量7GB;
4、在备集群使用br restore full 导入了全库数据,记录RestoreTS;
5、配置并运行sync_diff_inspector -C ./config.yaml ,报错,校验没通过,先跳过这步,先验证同步链路;
6、在主集群创建CDC同步链路,–server 为备集群cdc server,–sink-uri 为备集群 tidb地址, --start-ts为 BackupTS。 执行cdc cli query 可以看到"capture_id"和"table_ids"的列表清单。
【遇到的问题:问题现象及影响】
1、在主集群的test.sbtest1表执行insert 语句,然后在备集群select 查看,数据并没有同步过来。
2、查看备集群的日志,报错:
[2025/02/25 15:10:29.828 +08:00] [INFO] [grpc_service.go:1345] [“update service GC safe point”] [service-id=ticdc-default-14565964990920368802] [expire-at=1740553829] [safepoint=456253093538430983]
[2025/02/25 15:10:41.736 +08:00] [WARN] [client.go:121] [“SendRequest failed”] [uri=http://127.0.0.1:37207/schema/__TiDB_BR_Temporary_mysql]
[2025/02/25 15:10:41.736 +08:00] [ERROR] [tidb_requests.go:77] [“fail to send schema request”] [component=TiDB] [error=“error.tidb.client_request_failed: Request failed with status code 400 from TiDB API: [schema:1049]Unknown database ‘__TiDB_BR_Temporary_mysql’”]
[2025/02/25 15:11:29.877 +08:00] [INFO] [grpc_service.go:1345] [“update service GC safe point”] [service-id=ticdc-default-14565964990920368802] [expire-at=1740553889] [safepoint=456253109227749388]

【资源配置】
monitor:8c16G ubuntu20.04
tidb01:16c64G ubuntu20.04
tidb02:16c64G ubuntu20.04
tidb03:16c64G ubuntu20.04
【监控截图】




cdc 组件应部署在主集群上,这样捕捉的才是主集群变化

我看到官方文档建议的是cdc和备集群部署在一起。其实一开始我是将cdc部署在主集群端的,也是一样的报错现象。

我怀疑你 restore 的时候是不是都没有成功。

报错跟__TiDB_BR_Temporary_mysql有关你要不先把这个库给 filter 掉

这是br restore的结果,显示是恢复成功了。我试试您说的filter,再验证下


这里的一起是物理位置的一起,不是在备集群上一起

有道理,我换一下ticdc的部署,放到主集群里试试

添加 --filter ‘.’ --filter ‘!_TiDB_BR_Temporary.’ 选项后,restore之后,pd里没有__TiDB_BR_Temporary_mysq相关的报错了。日志里也没有其他的error。查询备库恢复的数据,br restore的数据库都有数据了。以下截图是主集群 pd 和 cdc的日志

我将cdc部署到主集群、下线掉备集群的cdc后,按复现步骤操作了一遍, 在主集群创建cdc同步链路后,还是没有同步数据到备集群。然后开启主备的GC SET GLOBAL tidb_gc_enable=TRUE; 也是不能同步增量数据。下图是 cdc cli changefeed query 的结果:

之前一直测试验证的test数据库的数据同步,现在发现这个库同系统库一样,被cdc屏蔽了,不会同步。 用其他业务库验证测试,同步成功了。感谢!!

1 个赞

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