都是 Oracle 数据库在 Automatic Diagnostic Repository (ADR) 机制下生成的 跟踪日志(Trace Files),但它们的来源、用途和内容各有不同。下面逐一详解:
✅ 1. xxxx_ora_68372.trc
🔹 类型:用户会话跟踪文件(User Session Trace)
🔍 命名解析:
xxxx:数据库实例名(SID)ora:表示这是一个 Oracle 用户会话进程(非后台进程)68372:操作系统进程 ID(PID)
📌 来源:
- 由 客户端连接数据库时启动的服务器进程(Server Process) 生成。
- 本质上是一个通过 OCI 连接数据库的"用户会话",因此其 trace 文件以
_ora_命名。
📝 内容特点:
- 记录该会话的 基本上下文信息(SESSION ID、MODULE NAME、ACTION 等)
- 包含 操作的时间戳、命令类型(如 backup)、开始/结束时间
- 不包含详细 SQL 执行计划或 SBT 调用细节(除非手动开启 SQL_TRACE)
✅ 2. xxxx_dia0_10319_lws_1.trc
🔹 类型:诊断守护进程(Diagnostic Daemon)生成的"本地等待链"日志
🔍 命名解析:
dia0:Diagnostic Daemon(诊断守护进程),负责自动检测异常(如 hung session)10319:dia0 进程的 PIDlws_1:Local Wait Chain Snapshot #1(本地等待链快照)
📌 来源:
- 当 Oracle 的 Health Monitor (HM) 检测到某个会话长时间无响应(如等待超过阈值),会触发
dia0进程生成 等待链分析(Wait Chain Analysis)。 _lws_文件专门用于记录 会话之间的阻塞关系(谁在等谁)。
📝 内容特点:
- 包含完整的 等待事件栈(Wait Event Stack)
- 显示当前会话正在等待的资源(如
'recovery area: computing obsolete files') - 列出 前序等待事件 (如
'direct path write temp') - 可能包含 执行的 SQL 片段 (如
dbms_rcvman.lbCursor_t调用)
✅ 3. xxxx_dia0_10319_base_2.trc
🔹 类型:诊断守护进程(dia0)的基础跟踪文件(Base Trace)
🔍 命名解析:
base_2:表示这是 dia0 进程的 第 2 个基础 trace 文件(可能因日志轮转产生多个)- 与
_lws_不同,_base_文件记录 dia0 自身的运行状态和检测事件
📌 来源:
dia0进程在执行 Health Monitor 任务时,会将通用日志写入base_*.trc- 包括:hung session 检测、I/O 异常告警、自动诊断动作等
📝 内容特点:
-
记录 hung session 的发现与解除时间 log
HM: Session ... is hung HM: Session ... is no longer hung -
报告 系统级异常 ,如:log
HM: IO load is abnormally high - 33% outliers -
触发 本地等待链分析 (即生成
_lws_*.trc的原因)
📊 三者关系总结
表格
| 文件 | 生成者 | 作用 | 关键信息 |
|---|---|---|---|
xxxx_ora_68372.trc |
会话进程 | 记录 操作生命周期 | 会话 ID、操作类型、起止时间 |
xxxx_dia0_10319_lws_1.trc |
dia0(Health Monitor) | 分析卡住会话的等待链 | 等待事件、SQL 上下文、I/O 行为 |
xxxx_dia0_10319_base_2.trc |
dia0(Health Monitor) | 记录诊断事件和系统告警 | hung session 状态变化、I/O 异常 |
💡 附加说明:如何查看这些文件?
所有文件均位于 ADR 的 trace 目录下:
$ ORACLE_BASE/diag/rdbms/siphisdb/siphisdb/trace/
可通过以下 SQL 查询路径:
SELECT VALUE FROM V $ DIAG_INFO WHERE NAME = 'Diag Trace';
✅ 总结
表格
| 文件 | 是什么日志? | 能回答什么问题? |
|---|---|---|
xxxx_ora_68372.trc |
会话日志 | "哪个会话执行了什么操作?何时开始/结束?" |
xxxx_dia0_10319_lws_1.trc |
等待链分析日志 | "会话卡在哪里?在等什么资源?执行了什么代码?" |
xxxx_dia0_10319_base_2.trc |
健康监控日志 | "系统是否检测到异常?I/O 是否过载?卡顿是否持续?" |
这三份日志共同构成了完整的故障诊断证据链,是排查卡顿问题的关键依据。