TIKV txn数据目前无法通过cdc的方式进行复制,是否可以通过learner节点实现

TIKV txn数据目前无法通过cdc的方式进行复制,是否可以利用learner角色实现数据的全量复制,再把learner角色的节点孤立出来,恢复成一个新的集群,从而实现数据全量复制的效果。
客户端进行双写的逻辑,进而完成DR。
任意一个集群故障后直接进行全量复制。

https://docs.pingcap.com/zh/tidb/dev/two-data-centers-in-one-city-deployment#部署架构

在官方文档里面看到同城双中心的部署架构,想看看这种思路有没有可行性?

没明白,是想用learner方式复制一份数据到下游,从而实现cdc的功能吗?还是为了异步复制容灾?既然都复制数据过来了,为什么客户端又要双写?:sweat_smile:

主要是为了容灾,因为目前没有cdc方案,希望通过另外的方式实现类似的效果。
预期是希望能够存在完全独立的2个集群,如果能通过learner的方式实现全量复制,再将learner节点独立出来恢复成新集群,这样就相当于直接完成了全量同步,然后客户端双写是保持增量数据的一致。

目的主要是希望隔离集群级别的故障,比如集群被突发流量打满CPU(或者其他雪崩的情况),处于基本无法工作的状态。如果存在一个数据完全一样的新集群,就可以保证核心业务能够切到新集群,完成故障隔离。这种情况下其实多中心部署方案也是不起作用的,甚至熔断机制也没有好的效果。

感觉好复杂,还不如直接同城拉根光纤,直接强同步

额,这个怎么操作?没听懂“强同步”的意思~

  1. ticdc 是提供事务复制的,但现在能力保持在 “下游集群可以在 5 分钟之内恢复集群,并且最多丢失出现问题前 10 秒钟的数据,即 RTO <= 5 mins, P95 RPO <= 10s。” --> https://docs.pingcap.com/zh/tidb/stable/manage-ticdc#灾难场景的最终一致性复制

  2. 你所想要做的应该是 DR-autosync 功能,可以参考如下文章。基本原理也是使用 learner,而且增加了 commit group 限制,不建议你自己搞,单副本恢复,很复杂。一些极端场景和性能上不一定能保证数据一致性。
    同城双中心自适应同步方案 —— DR Auto-Sync 详解 --> https://tidb.net/blog/061045ad DR Auto-Sync 搭建和计划内切换操作手册 --> https://tidb.net/blog/bc7aa3d9

好的,感谢,我学习下~

目前的sync方案都是在一个集群内的场景,最希望的还是能够通过某个手段分成2个完全隔离的集群。

还有想请教下官方的txn cdc方案有大致排期吗~~

cdc 的 rpo rto 有排期,预计今年有成果出来,但具体什么成果未知。 可以期待下,cdc 是工具组未来持续投入优化的 tool。

好的~~thx~

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。