温馨提示×

linux oracle怎么看日志

小樊
33
2026-10-16 04:09:26
栏目: 云计算

在 Linux 上查看 Oracle 数据库日志,通常分为 Oracle 自身日志 和 Linux 系统日志 两类。下面按常见场景说明。


一、Oracle 主要日志位置

Oracle 日志一般在 $ORACLE_BASE/diag 或 $ORACLE_HOME 目录下。

1️⃣ 告警日志(最常用)

alert log

# 查找 alert 日志路径
ls $ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log

查看:

tail -f $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log

或:

vi $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log

2️⃣ 监听日志(listener)

# 查看监听状态
lsnrctl status

# 监听日志路径
$ORACLE_HOME/network/log/listener.log

查看:

tail -f $ORACLE_HOME/network/log/listener.log

3️⃣ 跟踪文件(trace)

$ORACLE_BASE/diag/rdbms/*/*/trace/*.trc

查看某个会话错误:

tail -100 $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/orcl_ora_12345.trc

二、使用 SQL 查看日志(数据库内)

1️⃣ 查看告警日志内容(11g+)

SELECT * FROM X$DBGALERTEXT
ORDER BY INCIDENT_TIME DESC;

2️⃣ 查看归档日志

ARCHIVE LOG LIST;

3️⃣ 查看 redo 日志

SELECT * FROM v$logfile;
SELECT * FROM v$log;

三、Linux 系统相关日志

1️⃣ 系统日志

/var/log/messages
/var/log/syslog
tail -f /var/log/messages

2️⃣ 使用 journalctl(systemd)

journalctl -u oracle.service

四、常见问题排查建议

  • 数据库起不来 → 看 alert.log
  • 连不上数据库 → 看 listener.log
  • 某个 SQL 报错 → 看 .trc 文件
  • 系统层问题 → /var/log/messages

如果你能告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 想看哪种日志(启动 / 连接 / 报错)

我可以给你更精确的命令。

0 踩