开发者社区 > 大数据与机器学习 > 正文

想请教下各位大佬,用OceanBase-cdc采集一张600多万数据量的表,initial模式启动任

想请教下各位大佬,用OceanBase-cdc采集一张600多万数据量的表,initial模式启动任务后,一直卡在 Start to read snapshot阶段,长时间不往下运行导致任务报错,这种问题该怎么解决呢?

展开
收起
真的很搞笑 2023-04-25 18:12:56 143 0
7 条回答
写回答
取消 提交回答
  • 针对OceanBase CDC在initial模式启动任务时,长时间卡在读取快照(Start to read snapshot)阶段的问题,可以尝试以下几种排查和解决方法:

    1. 资源检查:

      • 确保OceanBase集群有足够的系统资源(CPU、内存、IO等)来处理大表的初始同步。大量数据的全量快照读取会消耗较多资源。
      • 检查存储层(例如OSS或其他持久化存储)的性能是否满足要求,包括带宽、IOPS等。
    2. 网络状况:

      • 验证网络连接是否稳定且带宽足够,特别是在分布式环境下,数据从OceanBase节点到CDC服务以及下游消费端的传输可能受到网络影响。
    3. 配置优化:

      • 检查并调整OceanBase CDC的相关配置参数,比如快照读取的并发数、分批次大小等,看是否可以提高同步效率。
      • 根据实际情况考虑将大表切分为小分区或子表进行分批同步,以减轻单次全量同步的压力。
    4. 监控与日志分析:

      • 查看OceanBase集群及CDC服务的监控指标,了解是否有特定瓶颈。
      • 分析OceanBase CDC的日志文件,找出具体卡住的原因,可能是某个内部流程阻塞或者出现了错误。
    5. OceanBase支持:

      • 如果以上自查无法解决问题,请联系OceanBase官方技术支持团队,提供详细的环境信息、配置信息和日志信息,以便于他们能够更准确地定位问题并给出解决方案。
    6. 业务时间窗口:

      • 考虑选择在业务低峰期执行全量同步任务,减少对生产环境的影响,并增加成功完成任务的可能性。

    image.png

    2024-01-08 16:37:55
    赞同 展开评论 打赏
  • 检查资源有没有被限制。检查一下数据库锁和隔离级别微信截图_20231028103855.png

    2024-01-03 16:32:32
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,如果在使用阿里云OceanBase CDC采集一张大表时,任务在"Start to read snapshot"阶段一直卡住,导致长时间不往下执行并最终报错,可以尝试增加资源配额,检查任务所在的机器的资源配额,包括CPU、内存、磁盘等。如果配额不足,可以尝试增加资源配额,给任务提供更多的计算和存储资源。

    还有就是调整CDC参数,可以直接调整OceanBase CDC的相关参数,如增加采集的并行度、调整内存管理参数等。这些参数的调整可以根据具体的任务需求和机器配置进行优化,以提高任务的执行效率。然后再来看一下下面的设置:
    image.png

    注意:本回答参考了阿里云OceanBase官方文档

    2024-01-02 17:31:42
    赞同 展开评论 打赏
  • OceanBase-cdc 是 OceanBase 数据库变更数据捕获(Change Data Capture,CDC)的组件,它可以捕获数据库的变更事件并将这些事件传递给下游的应用程序或服务。如果你在使用 OceanBase-cdc 以 initial 模式启动任务时遇到了长时间卡在 "Start to read snapshot" 阶段的问题,可能有几个潜在的原因和解决步骤:

    1. 资源限制

      • 确保 OceanBase 数据库服务器和运行 OceanBase-cdc 的服务器有足够的资源(CPU、内存、网络带宽)来处理这种大量数据的同步任务。
      • 检查数据库服务器的性能指标,如 CPU 使用率、内存使用率和 I/O 等待时间,以确定是否存在性能瓶颈。
    2. 配置检查

      • 检查 OceanBase-cdc 的配置,特别是与并发和批处理大小相关的设置,以确保它们适合你的数据量和服务器能力。
      • 如果 OceanBase-cdc 允许配置快照读取的超时时间,请确保它设置得足够长,以便能够处理大数据量。

    3 . 数据库锁定和隔离级别

    • 如果 OceanBase 数据库在读取快照时使用了某种锁定机制,这可能会影响性能。
    • 检查数据库的隔离级别设置,以及是否有长时间运行的事务阻塞了快照读取过程。
    2023-12-30 08:04:28
    赞同 1 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    确保采集的表结构正确,并且在initial模式下,表的schema与表文件的结构一致。如果不一致,您需要修改schema与表文件的结构,使其一致。
    确保表空间配置正确,并且在initial模式下,表空间与表的数据存储路径一致。如果不一致,您需要修改表空间配置,使其一致。
    如果您的表中存在全文索引,请在采集任务中指定全文索引,并且将其作为一个独立的数据源进行采集。这样可以避免全文索引对任务运行的影响。
    确保您的网络连接正常,并且可以正常访问OceanBase数据库。如果网络连接不正常,您需要检查网络设置,并确保网络畅通。
    查看OceanBase-cdc采集任务的日志信息,以便更详细地了解问题的原因。如果有错误信息,您可以根据错误信息进行排查。image.png

    2023-12-29 09:50:20
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    出现这种问题,可能是由于以下几个原因导致的:

    1. 采集的表数据量太大,导致读取 snapshot 的时间过长。可以尝试增加 OceanBase-cdc 的配置参数 connect.timeout,以允许更长时间的时间来读取 snapshot。
    2. 采集的表结构复杂,导致 snapshot 文件过大。可以尝试使用 OceanBase-cdc 提供的 snapshot.max.file.size 参数来控制 snapshot 文件的大小。
    3. 采集的表数据变化频繁,导致 snapshot 文件不断变化。可以尝试使用 OceanBase-cdc 提供的 snapshot.min.timestamp 参数来控制 snapshot 的时间间隔。
    4. 可能是由于网络问题或 OceanBase-cdc 服务端出现问题,导致无法正常读取 snapshot。可以尝试查看 OceanBase-cdc 的日志,查找是否有报错信息。
    2023-12-27 17:15:28
    赞同 展开评论 打赏
  • 调整CDC任务的并发数:通过设置--task.concurrency参数来调整CDC任务的并发数。例如,将并发数设置为10

    image.png

    https://www.oceanbase.com/docs/common-ocp-1000000000348347

    2023-12-27 10:54:52
    赞同 展开评论 打赏
滑动查看更多

大数据领域前沿技术分享与交流,这里不止有技术干货、学习心得、企业实践、社区活动,还有未来。

热门讨论

热门文章

相关电子书

更多
开源HTAP OceanBase产品揭秘 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载