【 使用环境 】测试环境 在新华三UIS虚拟化部署,海光7390 CPU,麒麟v10sp3
【 OB or 其他组件 】
【 使用版本 】oceanbase-all-in-one-4.3.5
【问题描述】单机部署没多久,数据库自动宕机
【复现路径】无其他启动,手动启动后宕机
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
论坛小助手
#3
日志采集场景: 集群无法连接
日志采集命令: obdiag gather scene run --scene=observer.cluster_down
推荐使用 obdiag 工具进行日志采集,并且将采集到的日志提供给我们以便确认问题所在。上述命令可以帮助我们收集集群宕机相关的诊断信息,包括系统状态、错误日志等,从而进一步分析导致 OceanBase 宕机的原因。
另外,为了确定具体的问题,在此需要您提供一些信息:(下面提出几个问题)
- OceanBase 在宕机前是否有任何异常表现?例如性能下降、资源占用过高(CPU、内存、磁盘 I/O 等)?
- 虚拟化环境(新华三 UIS)中是否发生了任何可能影响 OceanBase 的事件?例如虚拟机迁移、资源限制调整或主机维护操作?
- OceanBase 的部署配置文件(如 observer.config.ini)中是否有特别的参数设置?特别是与资源限制或故障恢复相关的参数?
- 是否有查看过操作系统层面的日志(如 /var/log/messages 或 dmesg 输出),以确认是否存在系统级的错误或警告信息?
- OceanBase 宕机时是否有运行特定的大查询或事务?如果有,请提供相关 SQL 的 trace_id 或执行计划。
附上敏捷诊断工具 obdiag 使用帮助链接
辞霜
#4
自动宕机,麻烦查看下你的cpu是否有avx指令集。当前ob必须要该指令集才可正常运行
论坛小助手
#7
您的问题可能存在误解,实际上据我所知,OceanBase 数据库在运行时依赖于 AVX 指令集以实现高性能计算。如果硬件不支持 AVX 指令集,可能会导致 OceanBase 数据库无法正常启动或运行一段时间后出现宕机。
原因分析
-
AVX 指令集的重要性
OceanBase 社区版从 4.x 版本开始,默认需要服务器支持 AVX 指令集(Advanced Vector Extensions)。这是因为 AVX 指令集能够显著提升数据库的计算性能,特别是在处理大规模数据和复杂查询时。
-
海光 7390 CPU 的情况
海光 7390 是一款国产化处理器,但根据 lscpu
检查结果,该 CPU 不支持 AVX 指令集。这可能是导致 OceanBase 数据库在单机部署后不久自动宕机的根本原因。
解决方案
方法一:确认硬件支持
- 如果可能,请更换为支持 AVX 指令集的 CPU。例如,Intel 或 AMD 的现代处理器通常都支持 AVX 指令集。
- 在更换硬件之前,可以通过以下命令检查新硬件是否支持 AVX:
lscpu | grep avx
如果输出中包含 avx
或 avx2
,则说明硬件支持 AVX 指令集。
方法二:尝试禁用 AVX(非推荐)
- 如果无法更换硬件,可以尝试通过编译 OceanBase 源码并禁用 AVX 支持来适配当前硬件。但需要注意的是,这种方法可能会显著降低数据库性能,并且不在官方支持范围内。
- 具体步骤如下:
- 下载 OceanBase 社区版源码。
- 修改编译选项,禁用 AVX 支持。例如,在 CMake 配置中添加以下参数:
cmake .. -DENABLE_AVX=OFF
- 编译并安装自定义版本的 OceanBase。
方法三:联系技术支持
- 如果上述方法无法解决您的问题,建议联系 OceanBase 官方技术支持团队,提供详细的环境信息(包括操作系统版本、CPU 型号、部署配置等),以便进一步排查问题。
总结
由于您的硬件不支持 AVX 指令集,这是导致 OceanBase 数据库宕机的主要原因。建议优先考虑更换支持 AVX 的硬件,或者尝试通过编译源码禁用 AVX 支持作为临时解决方案。
详情请参考:
- 4500 ~ 4999
- GV$OB_PX_TARGET_MONITOR
- V$OB_PX_TARGET_MONITOR
- 7000 ~ 7999
- 5000 ~ 5999
- GV$LATCH
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
新华三UIS虚拟化,修改CPU兼容模式,lscpu能看见AVX指令集了,继续安装测试。