1. Oracle日志体系全景解析
第一次接触Oracle日志时,我被各种类型的日志文件搞得晕头转向。Alert、Trace、Listener、Cluster...它们就像散落在迷宫里的线索,直到我理解了ADR(Automatic Diagnostic Repository)这个"中央情报局",才真正掌握了日志管理的钥匙。
Oracle 11g引入的ADR彻底改变了日志管理方式。想象一下,以前我们需要在bdump、udump、cdump等不同目录间来回切换,就像在多个抽屉里翻找文件。现在所有诊断数据都统一存放在$ORACLE_BASE/diag目录下,形成了清晰的树形结构:
diag/
├── rdbms/ # 数据库实例日志
│ └── orcl/ # 数据库名
│ └── orcl1/ # 实例名
│ ├── trace/ # 跟踪文件
│ └── alert/ # XML格式告警日志
├── asm/ # ASM实例日志
└── tnslsnr/ # 监听日志
关键日志类型速查表:
| 日志类型 | 记录内容 | 典型路径示例 |
|---|---|---|
| Alert日志 | 数据库生命周期关键事件 | $ORACLE_BASE/diag/rdbms/orcl/orcl1/trace/alert_orcl1.log |
| Trace文件 | 进程级详细诊断信息 | 同Alert日志目录下的*_ora_12345.trc |
| 监听日志 | 客户端连接请求与错误 | $ORACLE_BASE/diag/tnslsnr/hostname/listener/trace/listener.log |
| 集群日志(RAC) | 节点间通信与资源状态 | $GRID_HOME/log/hostname/alert_hostname.log |
记得有次处理ORA-00600错误时,我先在alert日志中发现错误时间点,然后根据提示找到对应trace文件,最终通过tkprof分析出是内存访问越界。这种"Alert定位→Trace分析



被折叠的 条评论
为什么被折叠?



