Oceanbase升级发现observer启动不了

【 使用环境 】生产环境
【 OB or 其他组件 】Oceanbase 4.2.3 升级至 4.2.5 BP1
【 使用版本 】
【问题描述】
1、OCP升级Oceanbase至4.2.5.bp1
2、升级执行到start observer process,一直在等待。


3、查看observer.log 和 alert.log 发现如下错误:

看着是日志出问题了。

2024-12-20 14:28:43.753498|ERROR|CLOG|OB_LOG_EXTERNAL_FILE_EXIST|-4016|0|1294390|observer|Y0-0000000000000001-0-0|get_has_allocated_blocks_cnt_in_|ob_server_log_block_mgr.cpp:1249|"Attention!!!There are several files in the log directory that are not generated by OceanBase.[suggestion] Please confirm whether manual deletion is required, unexpected file path is /data/oceanbase/pro_blog_ob_cluster/datafile/clog/check_reportcontent check_report"
2024-12-20 14:28:43.753610|ERROR|SERVER|OB_SERVER_INIT_FAIL|-4016|0|1294390|observer|Y0-0000000000000001-0-0|init|ob_server.cpp:559|"[server_start 4/18] observer init fail. you may find solutions in previous error logs or seek help from official technicians."

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

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

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

根据您提供的日志信息和错误码,可以确定问题出在 observer 启动时遇到了外部文件存在的情况。具体来说,错误码 -4016 表示在日志目录中发现了不是由 OceanBase 生成的文件,这导致了 observer 初始化失败。

错误分析

从日志中可以看到以下关键信息:

2024-12-20 14:28:43.753498|ERROR|CLOG|OB_LOG_EXTERNAL_FILE_EXIST|-4016|...|Attention!!!There are several files in the log directory that are not generated by OceanBase.[suggestion] Please confirm whether manual deletion is required, unexpected file path is /data/oceanbase/pro_blog_ob_cluster/datafile/clog/check_reportcontent check_report

解决步骤

  1. 确认外部文件

    • 检查路径 /data/oceanbase/pro_blog_ob_cluster/datafile/clog/ 下是否存在名为 check_reportcontent check_report 的文件。
    • 确认这些文件是否是由其他程序或手动操作生成的,而不是由 OceanBase 生成的。
  2. 备份并删除外部文件

    • 如果确认这些文件不是由 OceanBase 生成的,并且不影响业务数据,建议将这些文件备份到安全位置后删除。
    • 删除命令示例:
      mv /data/oceanbase/pro_blog_ob_cluster/datafile/clog/check_reportcontent_check_report /path/to/safe/location/
      
  3. 重启 observer 进程

    • 在确保外部文件已删除后,尝试重新启动 observer 进程。
    • 使用 OCP 或 obd 工具重启 observer
      obd cluster restart <cluster_name>
      
  4. 检查日志

    • 再次检查 observer.logalert.log,确认是否有新的错误信息。
    • 如果问题仍然存在,请继续查看日志中的其他错误提示,并根据提示进行进一步排查。

额外建议

  • 使用诊断工具:推荐使用 OceanBase 的敏捷诊断工具 obdiag 收集诊断信息,以便更全面地分析问题。详情参见链接:
    OceanBase 敏捷诊断工具

  • 联系技术支持:如果上述步骤无法解决问题,建议联系 OceanBase 的官方技术支持团队获取进一步帮助。

通过以上步骤,应该能够解决由于外部文件导致的 observer 启动失败问题。希望这些建议对您有所帮助!

检索到的文档如下:

  1. 4000 ~ 4499
  2. 7000 ~ 7999
  3. 0001 ~ 3999
  4. 4500 ~ 4999

之前进行obdiag的时候,在clog上生成相关目录,移除后可正常启动。

好的,obdiag收集时建议自定义一个目录