OMS 迁移 新增对象问题

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】OMS 4.2.1 社区版
【问题描述】清晰明确描述问题
我新建了个迁移任务,如第一张图,然后我再源端数据库新建了一张表td,并插入了两条数据,然后我修改了对象,增加了这张表,如第二张图,但是把这张表表结构和两条数据迁移过来后新增的对象任务就释放了,如第三张图,请问这是正常的还是不正常的,按理说不应该增量同步继续运行吗,要不然这张新建的表源端要是继续有数据写入,目的端不就没有数据了吗



正常现象,增加对象OMS会先进行全量初始化,然后当增量追上当前链路时,再将新增表加入当前链路的增量,然后停止初始化链路

我也看到增加对象和当前链路合并的过程了,并且合并好像也没报错,但是合并后,我在新增的对象表td里继续写入数据,目标端却没有,新增对象后续的增量同步是不成功的,请问这个该怎么排查

查看组件监控,看一下store和writer白名单,先确认新增的对象表td是否已经在白名单中了

是指这个吗,新增的对象td已经加入进来了如第一张图,组件监控里没看到有白名单,是在第二张截图里那个位置看白名单吗

不是这里看,进入链路,【查看组件监控】按钮,点击去会有store和writer,在点击更新就会看到参数
store看filter.conditions,writer看whiteCondition


新增对象是test1.td,store和incr-sync 里看确实没有新增进去,如第一、二两张图所示。


看运维任务里的记录是合并成功了的

使用OMS 4.2.2 试一下

从CM组件日志中看到了这个,和这个有没有关系
/home/admin/logs/cm/log/service.log


可以重启一下store和writer

重启也不行

看日志新增对象 test1.td 是有记录的,如第一张图,第二张图updateconfigs 是合并的过程吧,但是这个过程并没有test1.td的记录,所以是不是合并的时候程序就没把td合并进去,而不是合并td的过程报错了导致没合并成功


有这个可能的,这里可能是bug,使用最新版OMS 4.2.2试一下看看
你这边操作了3次,详细的操作部分可以在这里发一下,我们测一下看看

就是我新建了一个迁移项目,然后我就想测一下迁移项目创建成功后还能不能继续添加新表进这个迁移项目里面了,所以我就新增对象,把td这张表添加进去,然后结果就是td这张表的结构迁移和全量迁移都是成功的,但是增量迁移是不行的


【项目合并工单】任务成功后,刷新原迁移项目的 【增量同步】页面,看看下面的【同步对象】统计里有没有 新增的对象表。

我们在OMS 4.2.2 上重复你这边的操作没有复现问题,建议使用OMS 4.2.2试试

增量同步里对象统计一直都是空的,全量迁移和结构迁移里都是能看到表对象的


好的,我也用4.2.2 试试看

我用4.2.2 也不行,我把详细过程贴出来,请帮我看看是哪个步骤出了问题
我先创建一个迁移项目
第一步:选择源和目标


第二步:选择迁移类型

第三步:选择迁移对象

第四步:迁移选项,这一步全部使用的默认值

第五步:预检查成功,然后 启动项目

以上,创建好迁移项目之后,我开始新增对象test1.td 表
第一步:在迁移项目的界面点击查看对象


第二步,点击迁移对象 → 增加对象

第三步,添加对象test1.td表

第四步:预检查成功,然后保存之后新增对象开始运行

第五步:新增对象的结构迁移+全量迁移都是成功的,并且开始合并

最后合并成功新增对象被释放掉,主的迁移项目继续运行中,但是源端mysql里test1.td写入两条数据,目标端oceanbase中并没有新写入的数据


好的,感谢!我们根据你步骤再试试

根据你步骤重现了,感谢,我们在下个版本中进行修复

好的 :handshake: