OCP起Observer节点,在start obshell这块卡住

【 使用环境 】生产环境
【 OB or 其他组件 】obshell & OCP
【 使用版本 】OCP版本4.4
【问题描述】OCP重启observer节点时,在start obshell卡住。查看日志应该是一致轮训访问2886端口,obshell端口配置的40101端口。

2026-08-07 06:19:05.037 INFO 36046 — [manual-subtask-executor14,…] c.o.ocp.service.iam.user.UserService : user 100 login with organization 10000000
2026-08-07 06:19:05.040 INFO 36046 — [manual-subtask-executor14,…] c.o.o.c.t.e.runner.JavaSubtaskRunner : Retry subtask, id=184791,
context=Context{…, ob_log_disk_path=/work/oceanbase45101/redo, ob_run_path=/opt/soft/oceanbase/observer, service_version=4.3.5.5,
ob_install_path=/opt/soft/oceanbase/observer, ob_sql_port=43101, cluster_id=2, ob_svr_port=44101, sub_task_instance_name=Start obshell process,
sub_task_instance_id=184791, cluster_name=oceanbase45101, server_id=3, host_id=4, …}
2026-08-07 06:19:19.368 INFO 36046 — [manual-subtask-executor14,…] c.o.o.e.internal.template.HttpTemplate : POST request to agent,
url:http://10.40.67.206:62888/api/v1/process/startObShellProcess, request body:OperationObShellProcessRequest(installPath=/opt/soft/oceanbase/observer,
runPath=/opt/soft/oceanbase/observer, port=2886, ip=10.40.67.206, rootpassword=xxx)
2026-08-07 06:19:31.615 WARN 36046 — [manual-subtask-executor14,…] c.o.o.c.h.s.HostOperationServiceImpl : Process name: obshell which occupied
port:2886 is not found in host 4
2026-08-07 06:24:05.041 WARN 36046 — [subtask-executor20,…] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : Receive timeout callback, id=184791, name=Start
obshell process, elapsed=300, timeout=300
2026-08-07 06:24:05.272 ERROR 36046 — [manual-subtask-executor14,…] c.o.o.c.t.e.c.w.subtask.SubtaskExecutor : Failed to start obshell process,
serverId:3.
com.oceanbase.ocp.core.exception.UnexpectedException: [OCP UnexpectedException]: status=500 INTERNAL_SERVER_ERROR,
errorCode=OB_SERVER_OBSHELL_PROCESS_START_FAILED, args=3
at com.oceanbase.ocp.service.task.business.host.StartObShellTask.run(StartObShellTask.java:63)

obshell 进程信息(agent 返回给 OCP,每次轮询均正常返回):

ProcessInfoList:[
ProcessInfo{pid: 9599, name: obshell, cmdLine: /opt/soft/oceanbase/observer/bin/obshell daemon, username: root, createTime: 2026-08-07 06:19:18 +0800 CST}
ProcessInfo{pid: 9676, name: obshell, cmdLine: /opt/soft/oceanbase/observer/bin/obshell server, username: root, createTime: 2026-08-07 06:19:18 +0800 CST}
]

6 个赞

在启动 OceanBase 数据库的 obshell 进程时遇到了问题。错误信息显示为 OB_SERVER_OBSHELL_PROCESS_START_FAILED,这表明在尝试启动 obshell 进程时服务器返回了内部服务器错误(HTTP 500)。下面是一些解决这个问题的步骤:

  1. 检查 OceanBase 服务器状态
    首先,确认 OceanBase 服务器的运行状态是否异常。你可以通过 OceanBase 管理工具或者 SQL 命令检查服务器的健康状态。例如,使用以下 SQL 命令查看服务状态:SELECT * FROM __all_core_status;
  2. 查看详细的错误日志
    查看更详细的错误信息可以帮助你更好地理解问题。OceanBase 的日志通常位于服务器的日志目录中,位置可能依赖于你的安装配置。通常,你可以在 /var/log/oceanbase 或 /home/admin/oceanbase/log 路径下找到相关日志文件。检查与日期和时间为 2026-08-07 06:24:05 相关的日志条目,特别是那些标记为 ERROR 的条目。
  3. 检查系统资源
    确保服务器有足够的资源(CPU、内存、磁盘空间)来启动 obshell 进程。资源不足也可能导致进程启动失败。
  4. 重新启动 obshell 服务
    尝试手动重启 obshell 服务。你可以通过以下命令来重启服务:
    oceanbase stop obshell
    oceanbase start obshell
  5. 检查网络配置
    确保服务器之间的网络连接没有问题,特别是涉及到 obshell 进程的网络通信。网络问题可能导致进程无法正确启动。
  6. 联系技术支持
    如果以上步骤都不能解决问题,建议联系 OceanBase 的技术支持团队。提供完整的错误日志和系统信息将有助于他们更快地诊断问题。
  7. 检查配置文件
    确认 obshell的配置文件(如 obshell.conf)是否配置正确,特别是与服务器通信相关的配置项。
    通过上述步骤,你应该能够定位并解决启动 obshell 进程时遇到的问题。如果问题仍然存在,详细的错误日志和系统信息将是非常关键的调查依据。
1 个赞

发一下obd.log obshell.log日志

1 个赞

6664

1 个赞

6665

1 个赞

在无效回复,刷积分,给你禁言

1 个赞

无效回复,刷积分,可以看看社区治理水贴的公告,会给禁言

顶一下

1 个赞

问题应该是找到了,本身这套集群是odb 创建集群,修改了obshell的端口,原本默认2886,改了。之后ocp纳管了这套集群。obd 不再管理这套集群。OCP内部对于obshell的端口是没有配置吗?还是内部代码写死了2886 ?

1 个赞

如果是ocp搭建的ocp上的端口 是可以改的