1 问题一
既然有 SELECT last_trace_id() FROM DUAL;
为什么不搞过 SELECT last_flt_trace_id() FROM DUAL;
2 问题二
如何让
observer.log obproxy.log trace.log obproxy_trace.log 里记录下sql文本 ?
1 问题一
既然有 SELECT last_trace_id() FROM DUAL;
为什么不搞过 SELECT last_flt_trace_id() FROM DUAL;
2 问题二
如何让
observer.log obproxy.log trace.log obproxy_trace.log 里记录下sql文本 ?
1、是对产品的考量 所以没有 last_flt_trace_id
last_flt_trace_id你认为这个是查询什么信息的函数呢?
2、
OceanBase 数据库作为一个分布式系统,拥有复杂的调用链路。当出现超时问题时,往往无法快速定位是 OceanBase 内部组件或是网络的问题,运维人员只能根据经验和 OBServer 日志进行分析。为了提高诊断效率,本次更新引入了一种全新的全链路追踪机制,能够追踪用户 SQL 请求在数据库全链路过程中,在不同组件、不同阶段执行的相关信息,并以可视化方式展现给用户,从而帮助用户快速定位问题所在位置。
全链路追踪覆盖了两条主要的数据流路径。
全链路追踪的目的是对这两条路径上的所有组件进行问题定位。
使用全链路追踪功能前,可通过 DBMS_MONITOR 包设置全链路追踪功能为打开状态,也可设置业务需要的采样率或日志打印级别等配置信息。功能打开后,符合配置规则的SQL,会被记录全路径的打点信息。
全链路追踪的日志,即跟踪日志(trace logs),它会根据数据访问路径来决定其记录细节。如果是通过 ODP 访问数据库,跟踪信息会同时记录在 ODP 和 OBServer 的日志文件中;若是直接访问 OBServer,则只在 OBServer 的日志文件中记录。具体而言,ODP 的跟踪日志文件命名为 obproxy_trace.log
,而 OBServer 的命名为 trace.log
。每个日志文件的大小限制为 256MB,当日志达到这一大小限制时,系统将创建新的日志文件,并将旧文件归档。归档文件的数量由配置项 max_syslog_file_count 控制,超出的文件将被自动删除。 运维人员可通过搜集和分析所有跟踪日志,来追踪每个事务或 SQL 查询在整个调用链路上的执行时间和其他相关信息。这不仅为问题的准确定位提供了重要线索,还大大提升了运维效率。