TICDC的同步任务可以暂停多长时间?

使用OpenAPI调用暂停同步任务任务后
POST /api/v2/changefeeds/{changefeed_id}/pause

这个同步任务可以暂停多长时间?比如数据库一直有数据变化,会不会把缓存或者磁盘占满?

  1. 同步任务可以暂停多长时间?
    这个取决你的源端GC时间,你的历史版本被清理掉了,自然任务无法重启了
  2. 比如数据库一直有数据变化,会不会把缓存或者磁盘占满?
    TiCDC 需要磁盘主要是为了缓冲上游写入高峰时下游消费不及时堆积的数据。正常运行期间都会需要写入磁盘,但通常不会成为同步吞吐和同步延时的瓶颈,写磁盘对延时的影响在百毫秒内。
    而且TICDC,官方建议 500G+的SSD就可以
1 个赞

这个取决于业务上,你能接受多长时间的数据不一致性。还有资源是否足够

1 个赞

https://docs.pingcap.com/zh/tidb/stable/ticdc-faq#ticdc-的-gc-ttl-是什么

1 个赞

只要不gc,停多久都性,就是占硬盘

确实如此,停太久后面GC了,就只能重新离线初始化一份数据到下游,保持上下游数据一致后,然后重新创建一个changefeed任务了。

根据TICDC的原理
TiCDC 则实时监听上游 TiKV 各个 Region Raft Log 的信息,并根据每个事务前后数据的差异生成对应多条 SQL 语句的数据变更信息。
所以取决于Region Raft Log 的信息可以保存多久

由 tidb_gc_life_time 和 tidb_gc_max_wait_time 决定,默认值下 24h

1 个赞

不超过cdc配置的gc ttl的时间

限制内存使用:在调用暂停同步任务的接口时,可以指定一个参数来限制内存的使用量。当内存使用量达到这个限制时,同步任务会自动停止,避免内存溢出。
定期检查内存和磁盘使用情况:在同步任务暂停期间,定期检查内存和磁盘的使用情况,确保它们不会超过限制。如果发现内存或磁盘使用量接近限制,可以采取措施,如清理内存、增加磁盘空间等。
设置同步任务的超时时间:在调用暂停同步任务的接口时,可以指定一个超时时间。当同步任务暂停时间超过这个超时时间后,同步任务会自动恢复。这样,即使内存和磁盘空间充足,也可以避免同步任务暂停时间过长。

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