服务器宕机重启后,数据库启动不了

【 使用环境 】生产环境

【 OB or 其他组件 】ocp

【 使用版本 】
oceanbase-ce-4.2.1.2
OceanBase Deploy: 2.4.0

【问题描述】
白天服务器宕机,服务器重启后,数据库就起不来了

【复现路径】

启动时屏幕输出如下:

【附件及日志】
observer.log 附件如下
observer.log.zip (10.0 MB)
配置yaml文件如下
dstarv10.yaml.zip (1.5 KB)

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

根据您提供的信息,服务器宕机后重启,数据库无法启动。以下是分析和解决步骤:

问题分析

  1. 错误码 -4012 和 -4016
    根据日志分析结果:

    • 错误码 -4012 表示超时(Timeout)。这可能是由于系统资源不足或某些操作耗时过长导致。
    • 错误码 -4016 表示内部错误(Internal error)。这可能与数据库的内部状态异常有关。

    参考文档片段 9 中关于错误码 4012 的描述:

    执行超时。可以通过性能调优减少耗时,或者设置更大的超时时间。如果问题持续,请联系技术支持人员协助排查。

  2. 系统参数检查
    根据 OCR 提取的图片内容,以下系统参数未达到推荐值:

    • vm.max_map_count:当前值为 65539,推荐值为 655360 或更高。
    • file-max:当前值为 6573687,推荐值大于 6573688
    • stack size:推荐值为 unlimited

    这些参数可能影响数据库的正常启动。建议调整这些参数以满足 OceanBase 的要求。

  3. 日志中的其他信息
    日志中提到:

    • observer program health check ok:表示 Observer 程序健康检查通过。
    • connect to observer failed:连接到 Observer 失败,这可能是由于超时或其他内部错误导致。

解决方案

1. 调整系统参数

根据 OceanBase 的最佳实践,调整以下系统参数:

  • 修改 vm.max_map_count

    sysctl -w vm.max_map_count=655360
    

    如果需要永久生效,可以将以下内容添加到 /etc/sysctl.conf 文件中:

    vm.max_map_count=655360
    
  • 修改 file-max

    echo "fs.file-max = 6573689" >> /etc/sysctl.conf
    sysctl -p
    
  • 修改 stack size
    编辑 /etc/security/limits.conf,添加以下内容:

    * soft stack unlimited
    * hard stack unlimited
    

2. 检查并清理日志文件

  • 查看 observer.log 文件,定位具体的错误信息。
  • 如果日志文件过大,可以尝试清理旧的日志文件以释放磁盘空间。

3. 增加超时时间

在配置文件中增加超时时间,例如:

cluster:
  dstarv10:
    global_conf:
      timeout: 600000  # 设置为 600 秒

4. 重新启动集群

执行以下命令重新启动集群:

obd cluster start dstarv10

5. 检查 Observer 状态

使用以下命令检查 Observer 的状态:

obd cluster display dstarv10

其他注意事项

  1. 磁盘空间检查
    确保磁盘空间充足,特别是数据目录和日志目录。如果磁盘空间不足,可能会导致数据库无法启动。

  2. 网络连通性检查
    确保所有节点之间的网络连通性正常,避免因网络问题导致的超时。

  3. 联系技术支持
    如果上述方法无法解决问题,建议参考文档片段 9 中的建议,联系 OceanBase 的技术支持团队进行进一步排查。


总结

根据文档库中的信息,数据库无法启动的主要原因可能是系统参数未达到推荐值以及超时问题。通过调整系统参数、增加超时时间、清理日志文件等措施,可以有效解决该问题。如果问题仍然存在,请提供更详细的日志信息以便进一步分析。

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

  1. 4000 ~ 4499
  2. 0001 ~ 3999

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

1 个赞

@ob小智

1 个赞

嗨!要了解我能说什么,请说 @ob小智 显示帮助

2 个赞

【 使用环境 】生产环境

【 OB or 其他组件 】ocp

【 使用版本 】
oceanbase-ce-4.2.1.2
OceanBase Deploy: 2.4.0

【问题描述】
白天服务器宕机,服务器重启后,数据库就起不来了

【复现路径】

启动时屏幕输出如下:

【附件及日志】
observer.log 附件如下
observer.log.zip (10.0 MB)
配置yaml文件如下
dstarv10.yaml.zip (1.5 KB) @OB小智 请帮我分析上述这个问题

2 个赞

表面报错好像是连接不上ce了

1 个赞


看一下这个路径下是不是被删掉文件,或者有什么非法文件。

1 个赞

具体看什么文件?

1 个赞

看一下主机messages日志,查下是否有磁盘故障信息报错

1 个赞

有什么能尽快恢复使用的方案么

1 个赞

服务器宕机导致的日志盘损坏,这种问题是无法恢复的,只能重新搭建集群了

1 个赞

:clap: :clap: :clap: