温馨提示×

Linux Oracle日志文件在哪查看

小樊
45
2025-11-14 22:20:22
栏目: 云计算

Linux 上 Oracle 日志文件位置与查看方法

一、常用日志类型与默认位置

  • 下表汇总了日常排障最常用的日志、默认目录结构与快速查看方式(以 ORACLE_SID=orcl 为例,实际以你的环境为准):
日志类型 默认路径(ADR,11g/12c/19c/21c) 传统路径(10g 及更早) 快速查看
数据库告警日志 Alert $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log(文本)
$ORACLE_BASE/diag/rdbms/orcl/orcl/alert/log.xml(XML)
$ORACLE_BASE/admin/orcl/bdump/alert_orcl.log tail/grep 文本;或用 adrci 查看
后台/用户进程跟踪文件 Trace $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/ $ORACLE_BASE/admin/orcl/bdump/(后台)
$ORACLE_BASE/admin/orcl/udump/(用户)
按进程名或 SPID 定位 .trc
监听日志 Listener $ORACLE_HOME/network/log/(常见为 listener.log 同左 tail/grep
RAC 集群件日志 $GRID_HOME/log/<节点名>/(如 crsd.log、cssd.log、ohasd.log 等) 同左 tail/grep
  • 说明:
    • 11g 起 Oracle 使用 ADR(Automatic Diagnostic Repository),告警与跟踪统一在 $DIAGNOSTIC_DEST/rdbms/<db_name>//trace|alert 下;10g 及更早使用 bdump/udump 目录。
    • $DIAGNOSTIC_DEST 缺省通常为 $ORACLE_BASE;若未设置,则回退到 $ORACLE_HOME/log
    • 监听日志 位置由 $ORACLE_HOME/network/log 下的配置决定,若 listener.ora 自定义了 LOG_DIRECTORY_listener,则以自定义目录为准。

二、在数据库中快速定位路径

  • 查看 ADR 根目录与关键目录:
    • SQL> show parameter diagnostic_dest
    • SQL> select name, value from v$diag_info where name in (‘Diag Alert’,‘Diag Trace’);
  • 兼容旧参数(10g/11g 早期常用):
    • SQL> show parameter background_dump_dest
    • SQL> show parameter user_dump_dest
  • 直接查询告警日志文本路径(实例级):
    • SQL> select value from v$parameter where name=‘background_dump_dest’;
  • 说明:
    • 11g+ 即使未显式设置 BACKGROUND_DUMP_DEST,告警与跟踪也会写入 ADR 相应目录;在 10g 则依赖上述 *_DUMP_DEST 参数。

三、常用查看命令示例

  • 实时查看告警日志(文本格式):
    • Linux> tail -f $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log
    • 或用 adrci
      • Linux> $ORACLE_HOME/bin/adrci
      • adrci> set home orcl
      • adrci> show alert -tail -f
  • 查看监听日志:
    • Linux> tail -f $ORACLE_HOME/network/log/listener.log
  • 按关键字过滤告警日志(如 ORA- 错误):
    • Linux> grep -i “ORA-” $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log
    • 或用 adrci:
      • adrci> show alert -p “message_text like ‘%ORA-%’”
  • 查看数据库重做日志成员(Redo Log Files):
    • SQL> select group#, member from v$logfile order by group#;
  • 说明:
    • adrci 是 Oracle 提供的诊断信息命令行工具,适合在 ADR 中检索 alerttrace

四、RAC 与 Grid 基础设施日志位置

  • 数据库实例告警日志(每个节点):
    • $ORACLE_BASE/diag/rdbms/<db_name>//trace/alert_.log
  • Grid 集群件日志(每个节点,目录以节点名为子目录):
    • $GRID_HOME/log/<节点名>/(如 alert.log、crsd/crsd.log、cssd/cssd.log、ohasd/ohasd.log、evmd/evmd.log 等)
  • 说明:
    • RAC 环境下,各实例告警与跟踪仍写入各自的 ADR 目录;集群件(CRS/OHASD/CSSD 等)日志集中在 $GRID_HOME/log 下按节点分层。

0