Docker部署OceanBase首次启动成功,重启则失败

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】
【问题描述】使用Docker restart或者stop/start无法正常重启OceanBase,首次Docker run可以成功;尝试删除run目录的daemon.pid文件再重启,无果;
【复现路径】
Docker镜像:
image
Docker Run语句:
docker run -p 2881:2881 --name oceanbase-mini -e MODE=mini -e OCEANBASE_ROOT_PASSWORD=Abc@1234 -v /filedisk/oceanbase/ob:/root/ob -d 31317e1ee445
【附件及日志】

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

1 个赞

用户问题: “使用 Docker 部署的 OceanBase 在首次启动成功后,为何重启会失败?”

推荐使用 obdiag 工具进行日志采集,并且将采集到的日志提供给我们以便确认问题所在。

日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

为了更好地帮助您解决问题,请您先执行上述命令并将生成的日志文件发送给我们。此外,为了更准确地定位问题原因,请您提供以下信息:

  1. 在首次启动成功后,您是否对 OceanBase 进行了任何配置更改或操作?
  2. 重启时是否有任何错误信息或警告?请提供 docker logs obstandalone 的输出结果。
  3. 您使用的 OceanBase 版本是什么?是否在尝试重启时更改过任何环境变量或参数?
  4. 是否有其他服务与 OceanBase 运行在同一台机器上?如果有,请说明这些服务是否也在重启时出现问题。

检索到的文档如下:

  1. 快速体验 OceanBase 社区版
  2. 数据库应急概述
  3. 4500 ~ 4999

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

可以用docker logs -f oceanbase-mini 看看docker打印的日志

根据您提供的信息和日志,您在使用 Docker 启动 OceanBase 时遇到了问题。首次启动成功,但在尝试重启时遇到了困难。从您提供的日志来看,OceanBase 在首次启动时确实成功了(Start observer ok),但没有更多关于重启失败的具体错误信息。这使得问题的诊断变得有些复杂,因为缺少详细的错误日志来直接定位问题。

不过,根据您的描述和现有信息,我们可以尝试以下几个方向来排查问题:

  1. 检查日志文件:您可以通过 docker logs <container_name_or_id> 命令查看容器启动时的详细日志,特别是那些在重启时出现的错误信息。这些信息可能会揭示为什么重启会失败。

  2. 检查容器状态:使用 docker ps -a 查看所有容器的状态,确认容器是否处于预期的状态。如果容器状态显示为异常终止(如 exited),那么它可能是因为某些内部错误而停止的。

  3. 检查卷挂载:您正在使用 -v /filedisk/oceanbase/ob:/root/ob 来挂载数据卷。确保挂载路径 /filedisk/oceanbase/ob 在宿主机上存在,并且权限正确。有时候,如果挂载点不存在或权限设置不当,可能导致容器启动失败。

  4. 环境变量和配置:确认在首次启动和重启之间没有修改任何环境变量或配置文件。即使是微小的变化也可能影响容器的启动行为。

  5. 资源限制:虽然从日志上看,栈大小设置为无限(The zecomenged nunber of stack size ds Unlinited),但请确保宿主机有足够的资源(如内存、CPU)来支持 OceanBase 的运行。资源不足也可能导致容器启动失败。

  6. 网络问题:检查宿主机的网络配置,确保 Docker 容器能够正常访问网络。有时候网络配置不当也会导致容器启动失败。

建议您按照上述步骤逐一排查,并关注容器启动时的详细日志信息。如果仍然无法解决问题,建议您联系 OceanBase 的技术支持团队,他们可能需要更多的系统信息来进行深入分析。

检索到的文档如下:

  1. slow trans

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

我之前好像遇见过这个报错。。但是没有深究,重新拉了个容器起来
想要仔细研究的话,可以安装一个obd部署后复现这个问题,再执行obd display-trace命令看详细的日志 :joy:

:joy:可以提供一下日志什么的么,这什么也没有看不出是什么原因导致的

通过命令 obd cluster destroy demo 把demo给干掉 再试试

如果跟我问题一样的话
日志上 显示 127.0.0.1 obshell false
通过查看cluster list可以看到有一个叫做demo的集群处于stopped状态
通过obd cluster edit-config demo
可以看到他的servers正是127.0.0.1
把demo给obd cluster destroy demo掉,确保他在docker容器重启的时候不会启动

这个问题有进展吗