启动失败 [ERROR] OBD-1006: Failed to connect to oceanbase-ce [ERROR] OBD-1005: Some of the servers in the cluster have been stopped

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.0.1
【问题描述】数据库运行中无法操作数据,重启后出现这种情况
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

obproxy.log (949.4 KB)

根据文档库中的信息,您的问题可能由以下几个原因导致:

  1. 网络不通:请检查 obd 和目标机器之间的网络是否连通。如果网络存在问题,请自行修复网络。
  2. 组件进程已退出或不提供服务:您可以尝试重新启动组件。如果仍然启动失败,请参考启动失败的错误进行排查,如 OBD-2002
  3. 账号密码不匹配:这通常是因为用户直接执行 SQL 命令修改了密码,导致账号密码与配置文件中存储的不同。这种情况下,有两种解决办法:
    • 执行 SQL 命令将密码改回与 obd 储存的密码一致。
    • 执行 vi ~/.obd/cluster/<deploy name>/config.yaml 修改对应的密码使其与组件中实际密码一致。

具体解决步骤如下:

检查网络

确保 obd 和目标机器之间的网络是连通的。可以使用 ping 命令来测试网络连通性:

ping <目标机器IP>

重新启动组件

尝试重新启动组件,确保组件能够正常运行:

obd cluster restart <deploy name>

检查和修改密码

  1. 通过 SQL 命令修改密码

    ALTER USER <username> IDENTIFIED BY <new_password>;
    

    确保新密码与配置文件中的密码一致。

  2. 修改配置文件中的密码
    编辑配置文件,将密码修改为与组件中实际密码一致:

    vi ~/.obd/cluster/<deploy name>/config.yaml
    

收集诊断信息

如果以上步骤仍无法解决问题,建议使用 OceanBase 敏捷诊断工具 obdiag 收集诊断信息,以便进一步分析问题。您可以按照以下步骤收集诊断信息:

obdiag collect all -o /path/to/output

希望这些步骤能帮助您解决问题。如果问题依然存在,请联系 OceanBase 的技术支持人员获取更多帮助。

更多信息请查看:

  1. OceanBase 安装部署工具 V1.6.0
  2. 错误码
  3. 通过 OBD 白屏部署 OceanBase 集群
  4. 4000 ~ 4499
  5. 9000 ~ 9499
  6. 0001 ~ 3999
  7. get_tenant 失败后重试无法退出
  8. 集群近期 1 小时内发生的事件
  9. 某租户下所有表占用磁盘大小

obd版本是多少,把详细的obd日志贴出来看一下 ~/.obd/log

yaml文件也发出来一份~/.obd/cluster/xxxx/

根据您提供的日志和配置文件,以及 obdiag 的分析结果,您的问题可能与以下几点有关:

  1. 网络问题:虽然 obdiag 分析结果显示没有明显的错误,但仍需确保网络连接正常。
  2. 组件状态:确保所有组件都在运行状态,特别是 oceanbase-ce 组件。
  3. 配置文件:检查配置文件中的各项设置是否正确,特别是与连接相关的部分。

详细步骤

1. 检查网络连接

确保 obd 和目标机器之间的网络是连通的。可以使用 ping 命令来测试网络连通性:

ping 127.0.0.1

2. 检查组件状态

确保所有组件都在运行状态,特别是 oceanbase-ce 组件。可以使用以下命令检查组件状态:

obd cluster status <deploy name>

如果发现某些组件未运行,可以尝试重新启动它们:

obd cluster restart <deploy name>

3. 检查配置文件

检查配置文件中的各项设置是否正确,特别是与连接相关的部分。配置文件路径通常为 ~/.obd/cluster/<deploy name>/config.yaml

以下是一些常见的配置项:

  • servers: 确保服务器列表正确。
  • oceanbase: 确保 oceanbase 组件的配置正确。
  • obproxy: 如果使用了 obproxy,确保其配置正确。

示例配置文件片段:

servers:
  - name: server1
    ip: 127.0.0.1
    ssh_port: 22
    user: root
    password: your_password

oceanbase:
  home_path: /home/admin/oceanbase
  data_dir: /data1/obdata
  log_dir: /data1/oblog
  zone: zone1
  server_ip: 127.0.0.1
  server_port: 2881
  rpc_port: 2882
  mysql_port: 2881
  rs_list: 127.0.0.1:2882

obproxy:
  home_path: /home/admin/obproxy
  config_dir: /home/admin/obproxy/conf
  log_dir: /home/admin/obproxy/log
  server_ip: 127.0.0.1
  server_port: 2883
  admin_port: 2884
  ob_cluster: my_cluster
  ob_zone: zone1
  ob_server: 127.0.0.1:2881

4. 查看详细日志

如果上述步骤仍无法解决问题,建议查看详细的日志文件以获取更多信息。可以使用以下命令查看详细日志:

cat /root/ob-agent/obdiag_analyze_pack_20241212181238/result_details.txt

总结

  1. 检查网络连接:确保网络连通。
  2. 检查组件状态:确保所有组件都在运行状态。
  3. 检查配置文件:确保配置文件中的各项设置正确。
  4. 查看详细日志:获取更多详细信息以进一步分析问题。

希望这些步骤能帮助您解决问题。如果问题依然存在,请联系 OceanBase 的技术支持人员获取更多帮助。

更多信息请查看:

  1. 测试命令组
  2. 使用 obd 部署主备租户

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

以解决。
手动执行以下命令,等待几分钟后能正常登录进去了
./bin/observer -o “memory_limit=24G,log_disk_size=150G,datafile_size=150G,log_disk_utilization_threshold=95,log_disk_utilization_limit_threshold=98”

你这是带参数启动方法,看一下是不是缺少java环境。报错显示一直conn ob数据库失败导致超时
磁盘设置这里参数不合理

谢谢 问题解决,麻烦删除下帖子的图片,数据忘记脱敏了

已修改