请问备库如何实现延迟应用?

【 TiDB 使用环境】生产环境
【 TiDB 版本】 v7.1
【遇到的问题】请问通过ticdc搭建了备库之后,如何设置实现备库延迟24小时应用日志变化?类似Oracle在log_archive_dest_n中配置DELAY参数,以实现生产库操作错误级的容灾。

24小时,设大gc就可以满足了。可以快速fluash back备库到gc内的任意时间点。日志延迟的意义没有那么大吧。

2 个赞

文档里好像没有说这个

搞这么复杂,gc时间设置24小时,有问题可以闪回或者按时间点导出数据库

1 个赞

TiDB 当前不直接支持这样的功能,只能考虑其它方案折中实现

备库配置延迟后,可以让开发团队直接做错误数据的提取。放在生产库去做的话,还得考虑性能、操作的风险性。

没有延迟应用,可以加大gc时间,搞个几天的gc,反正延迟应用不也是这个么作用么

最后用了什么方案?

可以完成后分享一下方案 :star_struck:

那你调备库的gc时间就行了,查询用as of timestame查很方便,查任何没gc时刻

实现生产库操作错误级的容灾,不希望影响上游(直接改上游 gc 时间最简单,但是影响上游):
1、开启 Syncpoint 功能,上下游定期会对齐 ts 点位(如不开启此功能,不能保证下游数据事务一致性,开启后也只能在对齐的点位保证事务一致性),根据需求适当调整 sync-point-intervalsync-point-retention ,参考:https://docs.pingcap.com/zh/tidb/dev/ticdc-upstream-downstream-check#启用-syncpoint
2、根据需求适当调整下游 tidb 的 gc 保留时间
3、发生误操作问题时,根据 tidb_cdc.syncpoint_v1 表中的 ts-map 数据,在下游设置 tidb_snapshot 读取一致性数据,从而找到误操作数据,通过 dumpling 导出

这是个不错的需求啊,建议pingcap考虑下

使用TiCDC的changefeed 功能来创建数据同步任务。在创建任务时,可以通过--start-ts 参数指定从哪个时间点开始同步数据

这个要改上游的GC时间吧