关于数据同步的延迟(性能与一致性)

我正在使用 TapData 或其他数据同步工具将 OceanBase 的数据实时同步到另一个数仓。在同步过程中,我想了解 OceanBase 的增量同步(CDC)通常会有多大的延迟?官方文档提到实测延迟在 1-3 秒,但在实际生产环境中,如果遇到网络波动或者源端有大事务,如何确保同步链路的数据一致性和最终时效性?有什么监控或自愈机制吗?

2 个赞

原来如此

1 个赞

先在测试环境试一下啊,这个看数据量吧

@论坛小助手

在实际生产环境中使用 OceanBase 的增量同步(CDC)时,通常情况下延迟会在 1-3 秒。然而,如果遇到网络波动或源端有大事务,确保同步链路的数据一致性和最终时效性是十分重要的。以下是一些保证措施:

  1. 监控延迟:您可以在增量同步页面查看增量同步的状态、延迟时间和当前位点时间等信息,了解任务的运行状态。例如延迟指的是源端增量变更被同步至目标端的滞后时间,单位为秒。如果增量同步延时大于配置的告警时间,增量同步步骤会始终处于运行中,系统不会触发告警信息;但如果延时小于等于配置的告警时间,增量同步步骤的状态会由运行中切换为监控中,且不会再切换回运行中状态。
  2. 告警设置:建议设置告警级别和告警频率等信息,以便随时掌握任务运行状态。对于增量同步延时大于配置的告警时间的情况,系统不会触发告警,因此需合理配置告警时间。
  3. 处理延迟:对于存在 Store 同步任务的情况,需要查看 Store 日志(可以通过查看组件监控中 Store 的最近拉取时间判断 Store 是否延迟)。对于 Full-Import/Incr-Sync 日志,也需要进行检查。
  4. 资源调整:如果存在大事务场景,启动 Incr-Sync 需要根据情况扩大资源。建议在资源类型/组件方面进行合理配置,如 Store、Incr-Sync 和 Full-Import 的 CPU、Memory 和 Disk 资源。
  5. 任务配置:在创建数据同步任务时,建议一次性同步的表数量不超过 1000 张,避免影响数据同步任务的运行。当任务意外中断进行断点续传时,下游系统需要具备排重能力。
  6. 网络稳定性:保持节点之间的时钟同步,否则可能导致增量同步的延迟时间不准确。

详情请参考:

  1. 查看数据同步任务的详情
  2. 告警规则说明
  3. 内存和磁盘要求
  4. 创建 OceanBase 社区版至 RocketMQ 的数据同步任务
  5. 统计信息收集监控诊断