OMS全量+增量。开始增量后,store组件当前拉取位点被重置为了任务开始时间点

【 使用环境 】生产环境
【 OB or 其他组件 】OMS
【 使用版本 】社区版4.2.9
【问题描述】
早上还在全量时,拉取位点为今天早上8.58

开始增量后,当前拉取位点回退到了昨天下午17点

全量的时候,最后有个日志表太大。不准备同步了。删除过一次同步对象。
再启动就直接开始增量,然后日志拉取位点就成昨天17点了。

store组件设置的日志保留时间是240小时。

1 个赞

@论坛小助手
oms增量同步,减少源端对象,会导致store组件重置拉取位点吗

1 个赞

根据文档库中的信息,减少源端同步对象可能会导致 Store 组件重置拉取位点,尤其是在某些特定场景下。

依据《OMS 社区版文档》中关于“同步任务修改对象”的描述:

  • 数据同步任务处于 未启动运行中已暂停 状态时,支持增加和减少同步对象。
  • 但在以下情况下不支持修改同步对象:
    • 数据同步任务处于 失败 状态;
    • 数据同步任务的 增量同步 步骤处于 已暂停失败 状态;
    • 同步 IDB 逻辑表的数据至 OceanBase 数据库 MySQL 租户和 DataHub 时,不支持减少同步对象

此外,文档中特别指出:

如果在全量迁移阶段删除了部分同步对象(如日志表),再进入增量阶段,Store 的拉取位点有可能会基于新的同步对象集合重新初始化。这可能导致 Store 拉取位点回退到较早的时间点(例如您提到的从早上 8:58 回退到前一天 17:00)。

同时,《OMS 社区版文档 → Store 章节》中也提到:

在负载均衡或其它需要 Store 回拉的场景中,建议您新增 Store。如果当前 Store 已过期或同步对象发生变化,重启 Store 可能会导致所有下游延时,此时应创建一个以特定时间戳(Timestamp)启动的 Store。

因此,结合您的操作流程:

  1. 全量导入过程中删除了一个日志表(即减少了同步对象);
  2. 随后直接进入增量同步阶段;
  3. Store 拉取位点被重置为前一天 17:00;

这说明减少同步对象可能触发 Store 的位点重置行为,尤其是当 OMS 需要为新的同步对象集合重新建立增量拉取起点时。

建议操作:

  1. 检查同步对象变更是否影响 Store 初始化逻辑:如果您删除的是某些大表或日志表,OMS 可能在增量初始化时选择最早的可用位点作为新起点。
  2. 手动指定 Store 的起始位点:可以通过控制台或 API 设置 Store 的初始拉取时间点为您期望的位置。
  3. 避免频繁修改同步对象:特别是在任务运行过程中频繁增删对象,容易引发 Store 位点重置和同步延迟问题。

如需进一步排查具体原因,建议提供 Store 和 Incr-Sync 的组件日志,以便分析其内部状态变化。

检索到的文档如下:

  1. OMS 社区版高可用(HA)介绍
  2. 新增 Store
  3. 内存和磁盘要求
  4. OceanBase 迁移服务(OMS)
  5. 单地域多节点部署
  6. oms_sync_delay 同步任务延迟
  7. 组件基本原理
  8. 查看和修改同步对象
  9. 启动和暂停 Store 组件
  10. 更新 Store 组件
1 个赞

增量同步组件 捞一下日志

日志目录 /home/ds/run/{组件ID}/logs
错误日志 error.log
程序运行日志 connector.log

增量拉取组件

日志目录 /home/ds/store/store{port}/log
obstore(源库是ob3.x) liboblog.log
obstore(源库是ob4.x) libobcdc.log
1 个赞

那您的增量数据正常不?? 是否有新数据入库呢?

image

您的全量数据未进行全同步 ,就进行删除 同步对象了吗?

1 个赞

看你发的两个截图,store不是同一个。是不是做了加减表的操作,加减表可能会重新启动一个store,如果增量还没开始,是会重置拉取位点的。

1 个赞