observer节点关闭后无法启动

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.3.5
【问题描述】
按照官方文档操作,重启节点,无法启动。
添加节点-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档

日志文件如附件:
observer.log (562.4 KB)

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

日志采集场景: 集群无法连接
日志采集命令: obdiag gather scene run --scene=observer.cluster_down

推荐使用 obdiag 工具进行日志采集,以便我们进一步分析 observer 节点无法启动的原因。虽然您已经提供了日志文件,但 obdiag 可以系统化地收集更多有助于诊断的信息。

为了更好地帮助您解决问题,请您提供以下信息:

  1. 在尝试重启 observer 节点时,是否有任何特定的错误消息或警告信息?
  2. 您能否确认测试环境中的硬件和操作系统是否满足 OceanBase 4.3.5 的最低要求?
  3. 是否对配置文件(如 observer.config.ini)进行了任何更改?如果有,请提供具体的修改内容。
  4. 测试环境中是否存在其他正常运行的 observer 节点?如果有,它们的日志中是否也出现了类似的异常信息?

请您执行上述 obdiag 日志采集命令,并将生成的日志压缩包提供给我们,以便我们能够更准确地定位问题并给出解决方案。

附上敏捷诊断工具 obdiag 使用帮助链接


我看下您的 初始化启动的命令吧


这是初始启动集群的指令

配置文件也发下吧

你服务器的 资源 也发下

配置文件:
default-components.zip (2.1 KB)
机器配置:
三台: 32c/64G/500G

根据您提供的信息和日志,以下是关于 OceanBase observer 节点无法启动问题的分析与建议:

1. 检查配置文件

您提到使用了 obd 工具来启动集群,并且提供了配置文件 default-components.yaml。请确保该配置文件中的各项参数设置正确,特别是以下关键参数:

  • 数据目录:确保 data_dirclog_dir 等路径配置正确,并且有足够的磁盘空间。
  • 内存配置:确保 system_memorydatafile_size 等内存相关参数合理,避免因内存不足导致启动失败。
  • 网络配置:确保 rpc_portsql_port 等网络端口配置正确,并且防火墙允许这些端口的通信。

您可以参考官方文档中的 observer 启动参数说明 来验证配置文件中的参数是否正确。

2. 日志分析

根据您提供的 observer.log 日志片段,日志中没有明显的错误信息,但也没有显示启动成功的标志。通常,如果 observer 成功启动,日志中会包含类似以下的信息:

[INFO] succ to start observer

如果没有看到类似的启动成功信息,可能意味着启动过程中遇到了问题,但日志没有记录具体的错误原因。

建议您使用 obdiag 工具进行更详细的日志采集和分析。您可以运行以下命令来收集更多诊断信息:

obdiag gather scene run --scene=observer.cluster_down

3. 硬件和环境检查

您提到测试环境的机器配置为三台服务器,每台配置为 32 核、64GB 内存、500GB 磁盘。请确保:

  • 磁盘空间:确保 /home 目录下的磁盘空间足够大,因为日志提示 clogdata 使用了同一块磁盘(/home),这可能会导致性能问题或磁盘空间不足。
  • 操作系统资源限制:检查操作系统的资源限制(如 ulimit 设置),确保 RLIMIT_MEMLOCKRLIMIT_NOFILE 等参数设置合理。您可以在日志中看到这些参数的值:
    RLIMIT_MEMLOCK           = 65536
    RLIMIT_NOFILE            = 655350
    
    如果这些值过低,可能会导致 observer 启动失败。建议将 RLIMIT_MEMLOCK 设置为更高的值(例如 1GB 或更高),并确保 RLIMIT_NOFILE 至少为 655350。

4. 网络连接检查

确保所有节点之间的网络连接正常,特别是根服务(Root Service)和其他 observer 节点之间的通信。您可以尝试从其他正常运行的节点 ping 当前无法启动的节点,确保网络连通性良好。

5. 尝试手动启动 observer

如果 obd 启动失败,您可以尝试手动启动 observer 进程,以便更好地观察启动过程中的详细信息。您可以参考官方文档中的 手动启动 observer 的步骤,使用以下命令手动启动 observer:

/home/admin/oceanbase/bin/observer -I <IP> -P <RPC_PORT> -p <SQL_PORT> -z <ZONE> -d <DATA_DIR> -r '<RS_LIST>' -c <CLUSTER_ID> -n <CLUSTER_NAME> -o "system_memory=30GB,datafile_size=100G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"

6. 检查其他节点状态

如果集群中有其他正常运行的节点,请检查它们的日志,确认是否有任何异常信息或警告,这些信息可能会帮助您定位问题。

7. 联系技术支持

如果经过上述检查后仍然无法解决问题,建议您联系 OceanBase 的官方技术支持团队,提供详细的日志和配置文件,以便他们能够进一步协助您排查问题。

希望以上建议能帮助您解决 observer 节点无法启动的问题。如果您有更多问题或需要进一步的帮助,请随时告知。

具体信息可参考以下文档:

  1. 备份目录结构
  2. 排序 limit 场景性能优化

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

看命令是带参二进制启动

但最终报错这些参数识别有问题

看带参格式 -o 后面的参数双引号是中文格式。

可以杀掉进程,使用英文双引号号或者不带参启动观察下。

建议按照楼上老师说的是下,这里的确是配置参数识别有问题


尝试了,依旧是报错。

obd 这些命令 拉不起来吗 ?

为什么非得用observer 命令启动啊 。

observer 这个命令启动 有个要求: 必须在根目录下 因为有很多启动配置文件,不然启动不成功的

./bin/observer 就这个启动,不要添加任何参数 试下。

./observer 直接执行报错信息也是一样的。

进入到目录/home/admin/observer
./bin/observer 指令执行成功。

居然跟执行路径有关系?官网文档好像没有进行说明,对于新手,使用很不友好。

1 个赞

这个目录的这个文件是 obd 部署产生的很多配置文件

./bin/observer 这个命令启动 会读取 etc下面的 配置文件

./observer启动 会在 /home/admin/oceanbase/bin


这个截图下 产生 etc等目录 , 您看下有不

使用 ./bin/observer 命令 不要使用 ./observer命令 试下

官方 文档 的启动 命令是这种形式。 可以有效避开这个问题。

我测试了好久才测试出来的 。

谢谢回答。文档说明太隐晦了,建议提示更清晰些。