OCP创建的集群,集群有主机连接不上,手动启动集群失败,导致集群不可用怎么解决

【 使用环境 】测试环境
【 OB or 其他组件 】OCP、OB
【 使用版本 】OCP:4.3.6-20250709105610 、observe:4.2.1.8
【问题描述】清晰明确描述问题
【复现路径】OCP创建的集群,集群有主机连接不上,导致集群不可用怎么解决,使用cd /home/admin/oceanbase && bin/observer 手动启动失败
observer.log (141.6 KB)

6 个赞

[2026-05-25 09:43:23.082915] INFO [SHARE] load_config (ob_config_manager.cpp:135) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=3] Using config file(path=“etc/observer.config.bin”)
[2026-05-25 09:43:23.115091] WDIAG crc64_sse42_dispatch (ob_crc64.cpp:1149) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=8][errcode=0] Use ISAL for crc64 calculate
[2026-05-25 09:43:23.115137] WDIAG [COMMON] check_payload_checksum (ob_record_header.cpp:89) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=34][errcode=-4103] checksum error.(crc_check_sum=1724878713, data_checksum=3505032815, ret=-4103)
[2026-05-25 09:43:23.115152] ERROR issue_dba_error (ob_log.cpp:1875) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=7][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4103, file=“ob_server_config.cpp”, line_no=474, info=“check data checksum failed”)
[2026-05-25 09:43:23.115180] EDIAG [SHARE.CONFIG] deserialize_ (ob_server_config.cpp:474) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=27][errcode=-4103] check data checksum failed(ret=-4103) BACKTRACE:0x12435d5c 0x5069065 0x5067b38 0x506757f 0x50674bc 0x50672ed 0xfda9c15 0xfda9213 0xfd9025c 0xa6c1109 0xa6b75e5 0x72b7334 0x7c2a53c2a1ca 0x7c2a53c2a28b 0x52dde1e
[2026-05-25 09:43:23.115264] WDIAG deserialize (ob_server_config.cpp:450) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=84][errcode=-4103] deserialize_ fail(slen=1459, pos=32, ret=-4103)
[2026-05-25 09:43:23.115273] WDIAG [COMMON] check_header_checksum (ob_record_header.cpp:56) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=5][errcode=-4103] record check checksum failed.(*this={magic:435, header_length:-29824, version:-32768, header_checksum:-17186, timestamp:9007204044963840, data_length:0, data_zlength:0, data_checksum:401664791859625984}, ret=-4103)
[2026-05-25 09:43:23.115286] ERROR issue_dba_error (ob_log.cpp:1875) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=12][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4103, file=“ob_server_config.cpp”, line_no=229, info=“check header checksum failed”)
[2026-05-25 09:43:23.115290] EDIAG [SHARE.CONFIG] deserialize_with_compat (ob_server_config.cpp:229) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=4][errcode=-4103] check header checksum failed(ret=-4103) BACKTRACE:0x12435d5c 0x5069065 0x5067b38 0x506757f 0x50674bc 0x50672ed 0xfda6f0f 0xfd906b4 0xa6c1109 0xa6b75e5 0x72b7334 0x7c2a53c2a1ca 0x7c2a53c2a28b 0x52dde1e
[2026-05-25 09:43:23.115315] ERROR issue_dba_error (ob_log.cpp:1875) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=25][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4103, file=“ob_config_manager.cpp”, line_no=150, info=“Deserialize server config failed”)
[2026-05-25 09:43:23.115332] EDIAG [SHARE] load_config (ob_config_manager.cpp:150) [268822][observer][T0][Y0-0000000000000000-0-0] [lt=16][errcode=-4103] Deserialize server config failed(path=“etc/observer.config.bin”, ret=-4103) BACKTRACE:0x12435d5c 0x5069065 0x516175d 0x516121f 0x514d874 0x51610c3 0xfd90f24 0xfd903af 0xa6c1109 0xa6b75e5 0x72b7334 0x7c2a53c2a1ca 0x7c2a53c2a28b 0x52dde1e

根据日志分析 etc/observer.config.bin 应该已损坏,Observer 在加载配置阶段失败退出

3 个赞

可以重正常的集群里面拷贝一份吗?

1 个赞

清空,重新开始 。

1 个赞

现在创建的集群异常,踢出不了,也创建不到zone

1 个赞

可以从健康的副本上拷贝一份
故障节点:先备份坏文件
mv etc/observer.config.bin etc/observer.config.bin.bad
从健康节点 scp

scp healthy_host:<observer_home>/etc/observer.config.bin etc/observer.config.bin

如果是单副本考试尝试一下
cd <observer 工作目录>
ls -la etc/observer.config.bin.history # 有历史版本也可试一下

校验历史备份是否完好(能 strings 出正常配置名)
strings etc/observer.config.bin.history | head -50

替换损坏文件
mv etc/observer.config.bin etc/observer.config.bin.bad
cp etc/observer.config.bin.history etc/observer.config.bin

2 个赞

替换完后,运行的结果
observer (1).log (416.5 KB)

1 个赞

[2026-05-25 10:03:01.482488] EDIAG [CLOG] do_init_ (ob_server_log_block_mgr.cpp:515)
::openat failed(ret=-9100, errno=2,
log_pool_base_path="/home/admin/oceanbase/store/oceanbase_master/clog")

[2026-05-25 10:03:01.482605] EDIAG [SERVER] init_io (ob_server.cpp:2147)
log block mgr init failed(ret=-9100, ret=“OB_NO_SUCH_FILE_OR_DIRECTORY”)

[2026-05-25 10:03:08.092804] ERROR init (ob_server.cpp:510)
observer start process failure(…, ret=-9100)
home/admin/oceanbase/store/oceanbase_master/clog下缺少文件,导致的初始化失败。

1 个赞

root@ubuntu-24-security:/home/admin/oceanbase/store/oceanbase_master/clog# ls
log_pool tenant_1 tenant_1013 tenant_1014 tenant_1017 tenant_1018
缺少的具体是?

1 个赞

缺的是 clog/log_pool/meta(Server 级),不是某个租户的业务 clog;

1 个赞

可以复制健康的集群的吗?

不行 这个observer已经故障了 应该走下线observer 删掉节点 重新搭建

1 个赞

现在就是这个ob异常,其他的节点都不进去,也移除不了

1 个赞

现在通过其他的两个节点直连进去查询信息么?
obclient -hxx.xx.xx.xx -P2881 -uroot@sys -p’’ -Doceanbase -A
SELECT * FROM oceanbase.DBA_OB_SERVERS;

1 个赞

其他的节点都连接不进去

那就说明 这个集群无主了吧 正常情况下 一个副本有问题 其他的两个副本是符合多数派的

已经不能对外提供服务了 你可以其他两个节点也给关闭重启一下 看看是否有问题

1 个赞

集群的节点重启过了,也是一样的

1 个赞

这个情况能恢复吗?

那应该就是无主了 你可以把三台rootservice.log日志 也发一下 这样的情况下 应该不能恢复了 其他的两个节点也是无主状态 没有办法提供服务了

178:
rootservice (2).log (2.0 MB)