首批通过分布式安全可靠测评,为关键业务系统打造
查看 ODC 相关全链路日志
更新时间:2026-04-13 15:31:21
本文档旨在介绍如何查看 ODC 相关全链路日志,主要为 SQL 执行链路的相关日志,具体包括 ODC、OBServer、OBproxy 等节点。
查看 ODC 日志
ODC 各版本日志查看可参考相关文档:
查看 OBServer 日志
OBServer 的日志在 OBServer 的安装路径的 log 路径下,包括 observer.log、rootservice.log 和 election.log 三种日志,分别对应 observer 日志、RS 日志和选举日志。
对于每一种日志,如 observer.log,按照文件名大致分为以下几种:
observer.log
observer.log.20210901123456
observer.log.wf
observer.log.wf.20210901123456
当 observer.log 达到 256MB 时,会将其更名为第二种日志,后面的数字为时间戳。wf 日志的含义见下文 enable_syslog_wf 配置项。
有关 OBServer 日志详情,请参考 OceanBase 数据库日志。
OBServer 日志格式
日志示例:
[2021-09-01 11:31:18.605433] INFO [STORAGE] ob_pg_sstable_garbage_collector.cpp:170 [38715][0][Y0-0000000000000000-0-0] [lt=15] [dc=0] do one gc free sstable by queue(ret=0, free sstable cnt=0)对应的日志格式:
[时间] 日志级别 [所属模块] 文件:行号 [线程id][0][trace_id] [lt=上条日志耗费时间(微秒)][丢弃日志数量]
OBProxy 日志查看
执行错误的请求会打印到 obproxy_error.log 日志中,包括 OBProxy 自身错误和 OBServer 返回错误。
有关 OBProxy 日志详情,请参考:OceanBase 数据库日志与监控。
通过 trace 串联 SQL 日志
对于正确执行的 SQL,OBProxy 一般不会记录,而对于慢 SQL 和出错的 SQL,OBProxy 会分别记录在 obproxy_digest.log 和 obproxy_error.log 中。
从 ODC 日志中查询真正发往 OBProxy 的 SQL:
grep your-sql /opt/odc/log/odc.log | tail -20注意
ODC 可能会改写某些 SQL,因此尽量搜索关键词,全匹配可能无法查到。
获取真正执行的 SQL 后,在 OBProxy 中查询日志。
grep real-sql obproxy_error.log | tail -20注意
如果 OBProxy 为多节点部署,需要检索各个 OBProxy 上的日志。
日志示例:
# OBProxy日志 [2022-02-24 14:26:38.781097] WARN [PROXY.SM] set_client_abort (ob_mysql_sm.cpp:4790) [210278][Y0-7FAF8FB16890] [lt=7] [dc=0] client will abort soon(sm_id=33948448, cs_id=2007744, proxy_sessid=41059, ss_id=3619728, server_sessid=3221776979, client_ip={xx.x.xxx.xxx:xxxxx}, server_ip={xx.x.xxx.xx:xxxx}, cluster_name=sunshine_obcluster1, tenant_name=traveldb, user_name=travel, db=TRAVEL, event="VC_EVENT_EOS", request_cmd="Quit", sql_cmd="Query", sql=)在 OBProxy 日志中查询到
server_sessid后,在 OBServer 的日志中查询该server_sessid对应的日志。搜索关键字:sessid=xxx。日志示例:# OBServer日志 [2022-02-24 14:26:38.781201] WARN [SQL.SESSION] set_session_state (ob_basic_session_info.cpp:4184) [646225][3336][YB420A089429-0005CB40678E174E] [lt=8] [dc=0] session is killed(ret=-5066, sessid_=3221776979, proxy_sessid_=41059, version_=0, state=2)