oceanbase-all-in-one-4.3.5单机部署宕机

【 使用环境 】测试环境 在新华三UIS虚拟化部署,海光7390 CPU,麒麟v10sp3
【 OB or 其他组件 】
【 使用版本 】oceanbase-all-in-one-4.3.5
【问题描述】单机部署没多久,数据库自动宕机
【复现路径】无其他启动,手动启动后宕机
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

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

推荐使用 obdiag 工具进行日志采集,并且将采集到的日志提供给我们以便确认问题所在。上述命令可以帮助我们收集集群宕机相关的诊断信息,包括系统状态、错误日志等,从而进一步分析导致 OceanBase 宕机的原因。

另外,为了确定具体的问题,在此需要您提供一些信息:(下面提出几个问题)

  1. OceanBase 在宕机前是否有任何异常表现?例如性能下降、资源占用过高(CPU、内存、磁盘 I/O 等)?
  2. 虚拟化环境(新华三 UIS)中是否发生了任何可能影响 OceanBase 的事件?例如虚拟机迁移、资源限制调整或主机维护操作?
  3. OceanBase 的部署配置文件(如 observer.config.ini)中是否有特别的参数设置?特别是与资源限制或故障恢复相关的参数?
  4. 是否有查看过操作系统层面的日志(如 /var/log/messages 或 dmesg 输出),以确认是否存在系统级的错误或警告信息?
  5. OceanBase 宕机时是否有运行特定的大查询或事务?如果有,请提供相关 SQL 的 trace_id 或执行计划。

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

自动宕机,麻烦查看下你的cpu是否有avx指令集。当前ob必须要该指令集才可正常运行

嗯嗯,下个CPU-z看看支持哪些指令集。

lscpu检查,无AVX指令集

您的问题可能存在误解,实际上据我所知,OceanBase 数据库在运行时依赖于 AVX 指令集以实现高性能计算。如果硬件不支持 AVX 指令集,可能会导致 OceanBase 数据库无法正常启动或运行一段时间后出现宕机。

原因分析

  1. AVX 指令集的重要性
    OceanBase 社区版从 4.x 版本开始,默认需要服务器支持 AVX 指令集(Advanced Vector Extensions)。这是因为 AVX 指令集能够显著提升数据库的计算性能,特别是在处理大规模数据和复杂查询时。

  2. 海光 7390 CPU 的情况
    海光 7390 是一款国产化处理器,但根据 lscpu 检查结果,该 CPU 不支持 AVX 指令集。这可能是导致 OceanBase 数据库在单机部署后不久自动宕机的根本原因。


解决方案

方法一:确认硬件支持

  • 如果可能,请更换为支持 AVX 指令集的 CPU。例如,Intel 或 AMD 的现代处理器通常都支持 AVX 指令集。
  • 在更换硬件之前,可以通过以下命令检查新硬件是否支持 AVX:
    lscpu | grep avx
    
    如果输出中包含 avxavx2,则说明硬件支持 AVX 指令集。

方法二:尝试禁用 AVX(非推荐)

  • 如果无法更换硬件,可以尝试通过编译 OceanBase 源码并禁用 AVX 支持来适配当前硬件。但需要注意的是,这种方法可能会显著降低数据库性能,并且不在官方支持范围内。
  • 具体步骤如下:
    1. 下载 OceanBase 社区版源码。
    2. 修改编译选项,禁用 AVX 支持。例如,在 CMake 配置中添加以下参数:
      cmake .. -DENABLE_AVX=OFF
      
    3. 编译并安装自定义版本的 OceanBase。

方法三:联系技术支持

  • 如果上述方法无法解决您的问题,建议联系 OceanBase 官方技术支持团队,提供详细的环境信息(包括操作系统版本、CPU 型号、部署配置等),以便进一步排查问题。

总结

由于您的硬件不支持 AVX 指令集,这是导致 OceanBase 数据库宕机的主要原因。建议优先考虑更换支持 AVX 的硬件,或者尝试通过编译源码禁用 AVX 支持作为临时解决方案。

详情请参考:

  1. 4500 ~ 4999
  2. GV$OB_PX_TARGET_MONITOR
  3. V$OB_PX_TARGET_MONITOR
  4. 7000 ~ 7999
  5. 5000 ~ 5999
  6. GV$LATCH

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

更换个cpu

新华三UIS虚拟化,修改CPU兼容模式,lscpu能看见AVX指令集了,继续安装测试。