obkv初始化连接失败

【 使用环境 】生产环境
【 OB or 其他组件 】 obkv 4.2.5.2
【 使用版本 】4.2.5.2
【问题描述】用户鉴权失败
【复现路径】问题出现前后相关操作
【附件及日志】


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

1 个赞

日志采集场景: SQL 执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

根因分析场景: 事务其他错误
根因分析命令: obdiag rca run --scene=transaction_other_error

为了更好地帮助您解决 OBKV 初始化连接失败以及用户鉴权失败的问题,请使用上述 obdiag 命令进行日志采集和根因分析,并将生成的日志文件提供给我们。这些命令可以帮助我们收集到与问题相关的详细信息,从而更准确地定位问题所在。

另外,为了进一步确认问题的具体原因,请您提供以下信息:

  1. 当前使用的 OceanBase 数据库版本号是多少?
  2. 是否对用户权限进行了修改或调整?如果有,请描述具体的变更内容。
  3. 连接 OBKV 时使用的具体用户名和密码是什么(请确保不要泄露敏感信息)?
  4. 错误发生的时间点是否固定,或者是否有特定的操作触发了该问题?
  5. 是否有其他相关报错信息或异常现象可以提供?

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

1 个赞

报错时间段的observer.log日志发一下

2 个赞

observer1.zip (11.1 MB)

2 个赞

35.zip (12.8 MB)
error) ERR errCode:-4016, errCodeName:ObErrUnexpected, errMsg:Internal error, server:10.38.14.23:2885, trace:YB0660A2624EF-0000000000000002-0-0

日志生成过快,麻烦看看

1 个赞

根据您提供的日志文件和错误信息 errCode:-4016,该错误属于内部错误(ObErrUnexpected),通常表示在执行过程中遇到了未预期的情况。以下是对问题的分析和解决建议:


1. 错误码分析

根据文档库中的信息,错误码 -4016 并未直接出现在检索到的文档片段中。但结合上下文,可以推测该错误可能与以下几种情况相关:

  • 内部组件异常:如文档片段 3 和 4 所述,错误码 43934394 分别表示 observer 进程启动或停止时内部组件初始化失败。虽然错误码不完全匹配,但可以参考排查方法。
  • 磁盘故障:如文档片段 9 所述,错误码 4375 表示存储磁盘故障。如果日志生成过快导致磁盘 I/O 负载过高,可能会引发类似问题。
  • 日志过大:如文档片段 6 所述,错误码 4120 表示日志文件过大。如果日志轮转机制未能及时生效,可能导致系统异常。

2. 日志生成过快的原因

从您上传的日志文件中可以看出,日志文件增长速度较快,可能由以下原因引起:

  • 频繁的操作或请求:如果 OBKV 或 OceanBase 数据库接收到大量请求,可能会导致日志记录频率增加。
  • 警告或错误信息过多:如文档片段 1 和 2 所述,alert.log 和其他日志文件(如 observer.logrootservice.log 等)会记录系统运行过程中的各种事件。如果存在频繁的警告或错误信息,日志文件会迅速增大。
  • 配置不当:某些日志级别(如 DEBUGTRACE)可能会记录过多的详细信息,导致日志文件快速增长。

3. 解决步骤

步骤 1:检查日志轮转机制

确保日志轮转机制正常工作。根据文档片段 1 和 2 的描述,单个日志文件大小限制为 256MB。如果日志文件超过该限制而未进行轮转,可能是以下原因导致:

  • 日志轮转配置错误。
  • 文件系统权限问题,导致无法创建新的日志文件。

您可以手动刷新外表以查看所有日志内容:

ALTER EXTERNAL TABLE sys_external_tbs.__all_external_alert_log_info refresh;

注意:请勿手动创建 __all_external_alert_log_info 表,以免影响工具兼容性和升级一致性。

步骤 2:调整日志级别

如果日志生成过快是由日志级别设置过高引起的,可以通过以下方式调整日志级别:

  1. 修改 observer 配置文件中的 log_level 参数。例如,将日志级别从 DEBUGTRACE 调整为 INFO 或更高:
    log_level = INFO
    
  2. 重启 observer 进程以使配置生效。

步骤 3:检查磁盘状态

根据文档片段 9 的描述,磁盘故障可能导致系统异常。请检查磁盘状态,确保磁盘空间充足且无硬件故障:

df -h
smartctl -a /dev/sdX

步骤 4:分析日志内容

使用敏捷诊断工具 obdiag 分析日志文件,定位具体问题。例如:

obdiag gather scene run --scene=observer.sql_err --env "{db_connect='-h10.38.14.23 -P2885 -uroot@sys -p******', trace_id='YB0660A2624EF-0000000000000002-0-0'}"

步骤 5:联系技术支持

如果上述步骤未能解决问题,请收集以下信息并联系 OceanBase 技术支持团队:

  • 完整的日志文件(包括 alert.logobserver.log 等)。
  • 数据库版本号和配置文件内容。
  • 错误发生的时间点及操作上下文。

4. 总结

目前无法从检索到的文档中找到解决此问题的直接信息。基于我的内在知识,可能的解答是:

  • 错误码 -4016 表示内部异常,可能与日志生成过快或磁盘状态有关。
  • 建议通过调整日志级别、检查磁盘状态以及使用 obdiag 工具分析日志来进一步排查问题。

如果您需要更详细的指导,请提供更多上下文信息(如具体的日志内容和操作步骤)。

检索到的文档如下:

  1. Alert 日志
  2. 日志
  3. 4000 ~ 4499
  4. 14700.min_observer_version.md

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

1 个赞

你重新 执行一下命令 把observer.log日志重新发一下 这个日志是最新的 不是你当时执行报错的日志信息

1 个赞

我命令执行后,收集的日志

1 个赞

这个日志是覆盖了我当时的时间点的,就是收集他报错中提到的那个节点吧

我上传了两个日志,但是那个trace id确实过滤不到

image
我看了下 这个23 是obproxy的服务器,obproxy和observe 没有部署在一起

是的 看看是哪个节点有问题 找到日志信息 提供一下

如果你是通过obproxy执行的 可以现在obproxy.log中查看日志信息 把obproxy.log日志也提供一下

正在上传:obp.zip…

obp1.zip (9.1 MB)

obproxy2.zip (5.1 MB)

[root@catltobsapp01 ~]# date
Thu Apr 10 14:00:01 CST 2025
[root@catltobsapp01 ~]# redis-cli -h nd-test-dbcloud.catlbattery.com -p 2885 -a Mysjz__Qq103L
Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
nd-test-dbcloud.catlbattery.com:2885> ping
(error) ERR errCode:-4016, errCodeName:ObErrUnexpected, errMsg:Internal error, server:10.38.14.23:2885, trace:YE5680A2624EF-0000000000000002-0-0
nd-test-dbcloud.catlbattery.com:2885>

newodp.zip (6.2 MB)
[root@catltobsapp01 ~]# date
Thu Apr 10 14:18:58 CST 2025
[root@catltobsapp01 ~]# redis-cli -h nd-test-dbcloud.catlbattery.com -p 2885 -a Mysjz__Qq103L
Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
nd-test-dbcloud.catlbattery.com:2885> ping
(error) ERR errCode:-4016, errCodeName:ObErrUnexpected, errMsg:Internal error, server:10.38.14.25:2885, trace:YAF940A2624EF-0000000000000002-0-0
nd-test-dbcloud.catlbattery.com:2885>

这个时间段的observer.log也提供一下

所有节点吗?应该已经刷出去了