本文介绍如何排查 server 断连接问题。
断开连接的常见原因
断开连接的排查步骤
如何查找 conn_id
当 Query 异常时通常会报出 -5066 错误码,在 observer 日志中可以根据 trace_id 来查找。
日志信息如下。
observer.log.20230705172820016:[2023-07-05 17:26:35.988048] WDIAG [SQL] stmt_query (ob_sql.cpp:210) [61238][T1004_L0_G0][T1004][xxxxx-xxxxx-xxxxx-xxxxx] [lt=9][errcode=-5066] fail to handle text query(stmt=INSERT INTO test VALUES (SLEEP(1)), ret=-5066)
这里表示 session interrupt。随后搜索 connection close 来找到 sessid,如以下示例日志中的信息。
observer.log.20230705172820016:[2023-07-05 17:26:36.091289] INFO [RPC.OBMYSQL] destroy (obsm_conn_callback.cpp:223) [52261][sql_nio1][T0][Y0-0000000000000000-0-0] [lt=27] connection close(sessid=3221585899, ...)
在这个示例中,3221585899 即为 conn id 值。
适用版本
OceanBase 数据库所有版本。
敏捷诊断工具
OceanBase 敏捷诊断工具(OceanBase Diagnostic Tool, 简称obdiag) 是一款源代码开源敏捷黑屏诊断工具,可以对OceanBase集群进行一键集群巡检、一键分析、一键根因分析以及一键诊断信息收集。
示例:根因分析断连的场景
obdiag rca run --scene=disconnection
结果:+-----------------------------------------------------------------------------------------------------------+| record |+------+----------------------------------------------------------------------------------------------------+| step | info |+------+----------------------------------------------------------------------------------------------------+| 1 | node:xxx.xxx.xxx obproxy_diagnosis_log:[2024-01-18 17:48:37.667014] [23173][Y0-00007FAA5183E710] || | [CONNECTION](trace_type="CLIENT_VC_TRACE", connection_diagnosis={cs_id:1065, ss_id:4559, || | proxy_session_id:837192278409543969, server_session_id:3221810838, || | client_addr:"xxx.xxx.xxx.xxx:xxxx", server_addr:"xxx.xxx.xxx.xxx:2883", cluster_name:"obcluster", || | tenant_name:"sys", user_name:"root", error_code:-10010, error_msg:"An unexpected connection event || | received from client while obproxy reading request", request_cmd:"COM_SLEEP", sql_cmd:"COM_END", || | req_total_time(us):5315316}{vc_event:"VC_EVENT_EOS", user_sql:""}) || 2 | cs_id:1065, server_session_id:3221810838 || 3 | trace_type:CLIENT_VC_TRACE || 4 | error_code:-10010 |+------+----------------------------------------------------------------------------------------------------+The suggest: Need client cooperation for diagnosis
obdiag 下载地址:https://www.oceanbase.com/softwarecenter
obdiag 官方文档:https://www.oceanbase.com/docs/obdiag-cn
obdiag github地址:https://github.com/oceanbase/obdiag
obdiag 开发者营地:诊断工具 · OceanBase 技术交流
文章转载自数据库工兵营,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




