基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
通过 OCP 运维 OceanBase 数据库时遇到报错 native read function failed 的原因和解决方法
更新时间:2026-07-08 08:01
问题现象
通过 OCP Web 界面执行业务 OceanBase 数据库集群/租户的运维操作时遇到报错 Could not connect to 127.0.0.1:2888: Could not connect to 127.0.0.1:0: ObproxyVCSocket(cs_id:-1, fd:140435766924464) native read function failed。
相关的子任务执行失败,反复重试也还是一直报同样的错误。
问题原因
从 OCP V4.0.2 版本开始,OCP 容器中已经没有 OBProxy 进程/2888端口了,取而代之的是 OB-JDBC 富客户端。通过 OCP Web 界面执行业务 OceanBase 数据库集群的运维操作时,OCP 容器内部会通过富客户端功能连接到业务 OceanBase 数据库集群,该连接方式依赖业务于 OceanBase 数据库集群的 proxyro@sys 用户密码。因此,如果用户自己手工修改了业务 OceanBase 数据库集群的 proxyro 密码,却没有将该修改同步到 OCP 的密码箱中并重启 OCP 容器生效该修改,就会遇到上面的报错。
对于 OCP V4.2.0 BP1 之前的版本,该
proxyro@sys用户密码硬编码在OCP代码中的。对于 OCP V4.2.0 BP1 及之后的版本,该
proxyro@sys用户密码保存在 OCP 元数据中的profile_credential表中,对外呈现的是 OCP 的密码箱功能。
解决方法
通过如下四个步骤解决。
通过 OCP Web 界面的密码箱功能修改对应业务租户的
proxyro@sys用户密码。验证密码修改成功。
因为富客户端功能的配置信息只在 OCP 容器启动时刷新一次,因此需要重启所有的 OCP 容器来生效上面的修改。
[root@ocp1 ~]# docker restart ocp ocp [root@ocp2 ~]# docker restart ocp ocp [root@ocp3 ~]# docker restart ocp ocp等所有的 OCP 容器重启成功后,重试 OCP 任务中心失败的运维操作即可。