首批通过分布式安全可靠测评,为关键业务系统打造
数据库连接问题排查
更新时间:2026-07-04 17:56:33
本节主要介绍了无法连接数据库的问题的排查方法。
适用版本
OceanBase 数据库所有版本
问题排查思路
在 OBServer 的使用场景当中,通常情况下应用连接到数据库的完整链路是从应用服务器到 OBProxy 再到 OB 集群。如果在整个系统架构中还有负载均衡、DNS 解析、网络等组件,有可能从应用服务器端到OBServer 的整条链路会更长。在遇到连接问题时,需要清楚整个系统的架构,对整个连接链路进行排查。一般连接问题如连接失败、连接断开、连接报错异常等问题排查,从以下两个方向入手:
OBProxy 和应用之间的连接异常。
OBProxy 和 OBServer 之间连接异常。
通常情况下排查思路有两种:
尝试连接,通过整条链路检查组件的可用性检查以及各模块的连接测试可以缩小问题的范围
通过 OBProxy 连接数据库。
直连 OceanBase 数据库。
注意 直连 OceanBase 数据库时不需要带集群名,且端口号默认为 2881。命令参考如下:
obclient -h$IP -uroot@sys -P2881 -p
查看报错信息
查看报错信息包括应用端的连接信息和数据库后台的日志信息。
常见原因
在已知的报错场景中,有如下几种常见的连接问题。
数据库事务状态异常,OB主动断开连接。
事务提交后合法的返回值有可能是
OB_SUCCESS、OB_TRANS_KILLED、OB_TRANS_CTX_NOT_EXIST、OB_TRANS_TIMEOUT、OB_TRANS_STMT_TIMEOUT、OB_TRANS_NEED_ROLLBACK、OB_TRANS_ROLLBACKED、OB_NOT_MASTER、OB_TRANS_IS_EXITING。 如果不是已知的这些返回值场景,数据库的层面表明事务状态未知,返回报错-6225、transaction unknown, OB 会主动断开连接。为避免这种现象产生,应用需要做异常捕获,判断事务状态,并进行异常处理,从而保证业务流程符合预期。应用端是 Java,连接报错。