V4.2.2 社区版本 mysql向ob同步时,选择反向同步,反向同步启动失败

【 使用环境 】测试环境
【 OB or 其他组件 】OB + OMS
【 使用版本 】V4.2.2 社区
【问题描述】mysql向ob同步时,选择反向同步,反向同步启动失败
OMS_SWITCH_SUBSTEP_FAILED_ERROR
正向切换步骤执行失败:Store 启动失败。

【复现路径】前几天只做mysql到ob的全量、增量同步都没有问题。后面想验证,增加反向同步的操作(即mysql向ob同步完成后,切换到反向增量,失败。检查反向增量同步的日志,发现在mysql侧无omstxndb,手工创建,并赋予权限。然后发现不行。把oms的docker重启,包括数据库重启等,一系列操作后。就可以了。并且现在都是好的。

今天想重试一下,用另外一个表完成
迁移类型

结构迁移+全量迁移+增量同步+反向增量

在反向增量同步这一补充出现,如下错误
OMS_SWITCH_SUBSTEP_FAILED_ERROR
正向切换步骤执行失败:Store 启动失败。

重启一下步骤,还是不行
Step 3 启动目标端 Store:启动目标端增量拉取,创建并启动目标端 Store
【附件及日志】
congo.log的日志如下错误

412
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:100 317367,3393189632] OB Store: config ob2store: serialize_pool_size=>4
413
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:100 317367,3393189632] OB Store: config ob2store: subId=>0000000019
414
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:100 317367,3393189632] OB Store: config ob2store: subTopic=>OB_MYSQL_CE_np_627h4zuq1utc_reverse_627hdh8p5l28-1-0
415
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:100 317367,3393189632] OB Store: config ob2store: topic=>OB_MYSQL_CE_np_627h4zuq1utc_reverse_627hdh8p5l28
416
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:100 317367,3393189632] OB Store: config ob2store: stores.listen.port=>7104
417
2024-09-10 12:34:34 [NOTICE] [DrcModRunner.cpp:166 317367,3393189632] pipeline diagnose off
418
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:285 317367,3393189632] OB Store: start with tm: 1725941531, cp: , safe-timestamp: 1725941531
419
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:290 317367,3393189632] OB Store: DDL handling: collect
420
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:293 317367,3393189632] OB Store: liboblog construct
421
2024-09-10 12:34:34 [NOTICE] [ob2storeMod.cpp:304 317367,3393189632] OB Store: liboblog init
422
2024-09-10 12:34:35 [ERROR] [ob2storeMod.cpp:306 317367,3393189632] OB Store: failed to init log from
423
2024-09-10 12:34:35 [WARN] [DrcModRunner.cpp:195 317367,3393189632] IDrcModule_m::initModule failed
424
2024-09-10 12:34:37 [NOTICE] [StoresManager.cpp:251 352028,3968993472] Create scheduler with file size 16MB, cache 10MB and flush limit 32MB, compressed 2, , read wait number 0, enable index true, read thread number 2, index arena size 256

libobcdc.log的日志如下
·```log
[2024-09-10 12:34:35.734088] ERROR issue_dba_error (ob_log.cpp:1875) [351862][][T0][Y0-0000000000000000-0-0] [lt=21][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4002, file=“ob_log_instance.cpp”, line_no=592, info=“init_components_ fail”)
996
[2024-09-10 12:34:35.734103] EDIAG [TLOG] init_common_ (ob_log_instance.cpp:592) [351862][][T0][Y0-0000000000000000-0-0] [lt=14][errcode=-4002] init_components_ fail(ret=-4002, ret=“OB_INVALID_ARGUMENT”, start_tstamp_ns=1725941531000000000) BACKTRACE:0x185f47e0 0x9c26285 0x9c25553 0x9c24e7f 0x9c24afe 0x9c24926 0xc18e22a 0xc1838be 0xc183ffe 0xc183d79 0x7fe9dc0ccda3 0x7fe9e9b7e932 0x7fe9e9503ea5 0x7fe9e8b1db0d
997
[2024-09-10 12:34:35.734186] ERROR issue_dba_error (ob_log.cpp:1875) [351862][][T0][Y0-0000000000000000-0-0] [lt=81][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4002, file=“ob_log_instance.cpp”, line_no=261, info=“init fail”)
998
[2024-09-10 12:34:35.734192] EDIAG [TLOG] init (ob_log_instance.cpp:261) [351862][][T0][Y0-0000000000000000-0-0] [lt=6][errcode=-4002] init fail(ret=-4002, ret=“OB_INVALID_ARGUMENT”, start_tstamp_usec=1725941531000000) BACKTRACE:0x185f47e0 0x9c26285 0x9c25553 0x9c24e7f 0x9c24afe 0x9c24926 0xc183eac 0xc183da3 0x7fe9dc0ccda3 0x7fe9e9b7e932 0x7fe9e9503ea5 0x7fe9e8b1db0d
999
[2024-09-10 12:34:35.734330] INFO [TLOG] destroy_instance (ob_log_instance.cpp:127) [351862][][T0][Y0-0000000000000000-0-0] [lt=23] ObLogInstance 0x7fe9dc05c010 destroy
1000
[2024-09-10 12:34:35.734341] INFO [TLOG] ~ObLogInstance (ob_log_instance.cpp:214) [351862][][T0][Y0-0000000000000000-0-0] [lt=11] ====================libobcdc end====================

发一下 迁移步骤的截图和监控组件的截图
发一下正向切换的异常日志和输出日志反向增量的libobcdc.log


发一下 迁移步骤的截图和监控组件的截图

发一下正向切换的异常日志和输出日志反向增量的libobcdc.log

congo.log.log (34.2 KB)
libobcdc.log.log (142.8 KB)

源端有触发器或者外键,反向同步可能会失败

补充,修订后我重建一个数据源正常。我记起来前几天OK的原因:是不是configURL 配置时有issue?

没这个东东

1、我看后台报的错 也是这个 rs_list无效 应该和你配置的configURL无效有关系
Error:failed to init sql server provider by rs_list, please check rs_list is valid or not!

2、ob注册了configserver,自动获取,获取的是configurl,configurl的要用obproxy连接方式的创建数据源;自动获取rootservice的话,要么设置config_url为空,要么是独立部署的ob,直连方式创建数据源。
直连方式创建数据源,手动填写rootservice,目前这个格式是看是填写其中的一个rslist值,多个填写格式不对

还有下面3个问题(A、B、C),麻烦解答一下,谢谢


如图的"在OBServer中查询",自动获取的,不是我手工输入(上面的贴有正常二字的图片是我手工编辑的)。按照上面我回的贴,我的ob proxy是独立配置的,ocp express 社区版本 V4.2.2应该是bug。

参考你的回复,目前的日志比较难查,FAQ也没有。对于你回帖提到的第2点。
我在178、179、180的IP部署了ob server,在177部署了ob proxy,用obd web的portal部署的。

A、感觉就是上面的3台ob server,程序自动获取到重复的Root Server的3个地址,而不是3个ob server的地址,并且把 sql_port,rpc_port 2881,2882 2个端口都配上去,不太理解?
B、如果要填写obProxy,假设我手工填写obProxy要怎么填写,格式是什么?
IP1:2883,2884|IP2:2883,2884|IP3:2883,2884 这样的还是什么其他的
C、对于obServer的rootservice我试过,有3台ob server,当把当前是rootService的IP的进程杀掉,另外2台ob server不选举新的rootService。等一段长时间也不行,把原来杀掉的的IP的rootServcie启动起来后,rootServcie还是给原来的IP上,是否这样的选举需要至少5台observer,没有文档可以参考

1、我看后台报的错 也是这个 rs_list无效 应该和你配置的configURL无效有关系
Error:failed to init sql server provider by rs_list, please check rs_list is valid or not!

2、ob注册了configserver,自动获取,获取的是configurl,configurl的要用obproxy连接方式的创建数据源;自动获取rootservice的话,要么设置config_url为空,要么是独立部署的ob,直连方式创建数据源。
直连方式创建数据源,手动填写rootservice,目前这个格式是看是填写其中的一个rslist值,多个填写格式不对

补充,按照帮助问题的结果如图,用obd web的社区版本部署的。链接我也给一下



部署包的链接
从https://www.oceanbase.com/softwarecenter 下载社区版本的ocenbase社区一键安装包 V4.2.2_ce_*

下载社区版本的oms包 4.2.2_ce

1.你配置的rs_list配置多个应该是无效的 导致了后台报错这种直连的方式只能配置一个ip地址 例如:IP1:2883,2884
2、 如果你配置obproxy启动方式是configurl你可以配置configurl链接
查询命令:
obclient -uroot@proxysys -h10.10.10.1 -P2883 -p
show proxyconfig like ‘obproxy_config_server_url’;
show proxyconfig like ‘rootservice_list’;
3、这里有个博客讲解rootService总控服务的
OceanBase 社区1qtceu4_gaNDY5NDQ3NTcyLjE3MjQ3MjM3NDg._ga_T35KTM57DZ*MTcyNjAzMzUxMC4zMS4xLjE3MjYwMzQ2MjIuNjAuMC4w