oceanbase容器重启后不能访问

【 使用环境 】测试环境
【 OB or 其他组件 】无
【 使用版本 】4.2.1
【问题描述】oceanbase容器重启后不能访问,使用obclient连接提示如下图,要怎么处理
【复现路径】
【附件及日志】

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

1 个赞

您当前遇到的问题是容器重启后无法访问 OceanBase 数据库,并且使用 obclient 连接时报错提示 Can't connect to local OceanBase server。这可能是因为容器内的数据库服务尚未完全启动,或是在重启过程中出现了某些异常情况导致服务不可用。

推荐使用 obdiag 工具进行日志采集,以便进一步分析具体原因。

日志采集场景: 集群无法连接
日志采集命令: obdiag gather scene run --scene=observer.cluster_down

请您执行上述命令并将采集到的日志压缩包提供给我们,以便我们能够更准确地定位问题所在。

为了更好地帮助您解决问题,请您提供一些额外的信息:

  1. 您是在使用 OCP、OBD 还是根据文档手动部署的 OceanBase?
  2. 重启容器时是否遇到了任何异常信息或警告?
  3. 您能否提供重启容器的具体步骤及 obclient 报错的完整信息?
  4. 您是否尝试过检查容器内的日志文件来寻找可能的错误信息?如果有,请提供相关信息。

更多信息请查看:

  1. secure_file_priv
  2. 快速体验 OceanBase 社区版

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

1 个赞

ps -ef|grep observer
-h的ip带上

1 个赞

猜测OB应该启动了。

连接方式

TCP方式

obclient -h127.0.0.1 -P2881 -uroot@sys -p

SOCKET方式

obclient -S/path/to/socket -uroot@sys -p

题主应该明确指示出一种方式,看起来打算使用TCP,但是没有写IP,所以默认选择SOCKET方式,发现连接不上。

2 个赞


没有对应进程

1 个赞

使用“obclient -h127.0.0.1 -P2881 -uroot@sys -p”访问也不行

根据您提供的信息,使用 obclient -h127.0.0.1 -P2881 -uroot@sys -p 命令尝试连接时仍然报错,并且在容器内部通过 ps -ef | grep observer 检查发现没有 observer 相关的进程,这意味着 OceanBase 数据库服务可能没有正常启动。

针对您的问题,您可以尝试以下步骤来排查和解决问题:

  1. 检查容器日志:首先检查容器内的日志文件,以了解 observer 服务未能启动的原因。您可以通过以下命令进入容器并查看日志:

    docker exec -it oceanbase bash
    cd /home/admin/oceanbase/log/
    tail -f observer.log
    
  2. 检查容器健康状态:确认容器是否处于健康状态。您可以通过以下命令检查容器的状态:

    docker inspect -f '{{.State.Health.Status}}' oceanbase
    

    如果输出不是 healthy,则表示容器的健康检查失败,您需要进一步查看健康检查的日志以确定问题原因。

  3. 重新启动容器:如果日志中没有明显的错误信息,您可以尝试重新启动容器,看是否能解决问题:

    docker restart oceanbase
    

    并再次检查容器日志,观察 observer 服务是否成功启动。

  4. 检查容器配置:如果以上方法都不能解决问题,建议检查容器的启动配置,确保所有的环境变量和挂载卷都设置正确。特别是需要确认 OBSERVER_LOG_DIR 等环境变量是否指向了正确的日志目录。

  5. 使用 obdiag 工具进行诊断:如果问题依旧存在,可以使用 obdiag 工具来收集更多的诊断信息。具体命令如下:

    obdiag gather scene run --scene=observer.cluster_down
    

    收集到的日志可以帮助进一步分析问题原因。

希望以上步骤能帮助您解决问题。如果问题依然存在,请提供更多详细的日志信息以便进一步分析。

详情请参考:

  1. 快速体验 OceanBase 数据库
  2. 使用 ChunJun 从 MySQL 数据库迁移数据到 OceanBase 数据库
  3. 集群创建
  4. 创建 Python 示例应用程序
  5. 创建 Java 示例应用程序
  6. 创建 Go 示例应用程序
  7. 通过 OBClient 连接 OceanBase 租户
  8. 创建 C 示例应用程序

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

要么这么试试,查看下集群告诉的连接串就可以了。

[root@t2 ~]# podman exec -it 0006faddef92 /bin/bash
[root@0006faddef92 ~]# obd cluster  list
+------------------------------------------------------------+
|                        Cluster List                        |
+-----------+------------------------------+-----------------+
| Name      | Configuration Path           | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running         |
+-----------+------------------------------+-----------------+
Trace ID: 50f591e4-7e06-11ef-8838-b25c72a5de35
If you want to view detailed obd logs, please run: obd display-trace 50f591e4-7e06-11ef-8838-b25c72a5de35
[root@0006faddef92 ~]# obd cluster display obcluster 
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer 127.0.0.1:2881 ok
Wait for observer init ok
+---------------------------------------------+
|                   observer                  |
+-----------+---------+------+-------+--------+
| ip        | version | port | zone  | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 4.2.1.7 | 2881 | zone1 | ACTIVE |
+-----------+---------+------+-------+--------+
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A

cluster unique id: 3b56c7b3-242e-563b-b396-737fd557a081-1923b7c51a3-07010204

Connect to Obagent ok
+--------------------------------------------------------------+
|                           obagent                            |
+-----------+--------------------+--------------------+--------+
| ip        | mgragent_http_port | monagent_http_port | status |
+-----------+--------------------+--------------------+--------+
| 10.88.0.3 | 8089               | 8088               | active |
+-----------+--------------------+--------------------+--------+
Trace ID: 55cff1aa-7e06-11ef-baef-b25c72a5de35
If you want to view detailed obd logs, please run: obd display-trace 55cff1aa-7e06-11ef-baef-b25c72a5de35
[root@0006faddef92 ~]# 
[root@0006faddef92 ~]# obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221487912
Server version: OceanBase_CE 4.2.1.7 (r107000162024060611-69b64b84b656a4cfa126dab60b4e66dc1bc156ca) (Built Jun  6 2024 11:51:48)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

obclient [oceanbase]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| LBACSYS            |
| mysql              |
| oceanbase          |
| ocs                |
| ORAAUDITOR         |
| SYS                |
| test               |
+--------------------+
8 rows in set (0.006 sec)

oceanbase启动时ob-configserver启动失败,日志如下图

ob-configserver启动失败,日志如下图

目前问题还存在么,发一份observer日志。这边帮忙协助分析下