我正在使用 TapData 或其他数据同步工具将 OceanBase 的数据实时同步到另一个数仓。在同步过程中,我想了解 OceanBase 的增量同步(CDC)通常会有多大的延迟?官方文档提到实测延迟在 1-3 秒,但在实际生产环境中,如果遇到网络波动或者源端有大事务,如何确保同步链路的数据一致性和最终时效性?有什么监控或自愈机制吗?
1 个赞
CDC本身不能做到么
根据官方文档,OceanBase 的增量同步(CDC)在理想条件下的实测延迟为 1-3 秒。但在实际生产环境中,网络波动和源端的大事务可能会影响这一延迟。为了确保同步链路的数据一致性和最终时效性,OceanBase 提供了以下监控和自愈机制:
-
监控机制:在 增量同步 页面,可以查看增量同步的状态、延迟时间和当前位点时间等信息,了解任务的运行状态。您可以设置告警级别和告警频率,以便随时掌握任务运行状态。如果数据同步任务的增量同步延时大于配置的告警时间,系统会触发告警信息。
-
处理方式:
- 网络波动:建议检查网络连接,确保网络稳定。可以查看组件监控日志,了解具体的网络状况。
- 大事务:大事务可能导致延迟增加。建议优化大事务的处理,例如拆分大事务为多个小事务,或者在低峰期执行大事务。
- 日志信息:保留组件的监控日志(如 Store 和 Incr-Sync 日志),以便进行故障排查。如果存在 Store 同步任务,可以查看 Store 日志,判断 Store 是否延迟。
-
自愈机制:
- 任务延迟:如果任务延迟超过预期容忍延迟时间,系统会发送告警,并建议根据日志信息进行排查和处理。
- 断点续传:如果任务意外中断,可以进行断点续传。RocketMQ 实例中可能会存在部分重复数据,因此下游系统需要具备排重能力。
通过以上机制,可以在一定程度上确保同步链路的数据一致性和最终时效性。
更多信息请查看: