Alert日志是Oracle数据库最重要的日志之一,记录了数据库启动/关闭、错误、警告等关键事件。其路径可通过v$diag_info视图查询,或遵循Oracle默认结构:
$ORACLE_BASE/diag/rdbms/<数据库名>/<实例名>/alert目录下的<实例名>.log文件(如/u01/app/oracle/diag/rdbms/orcl/ORCL/alert/orcl.log)。# 使用cat查看完整日志
cat $ORACLE_BASE/diag/rdbms/orcl/ORCL/alert/orcl.log
# 使用less分页查看(适合大文件)
less $ORACLE_BASE/diag/rdbms/orcl/ORCL/alert/orcl.log
# 实时查看最新日志(推荐)
tail -f $ORACLE_BASE/diag/rdbms/orcl/ORCL/alert/orcl.log
其中$ORACLE_BASE通常为/u01/app/oracle(默认安装路径),<数据库名>和<实例名>需替换为实际值(可通过lsnrctl status或sqlplus / as sysdba查询)。监听器日志记录了客户端连接请求、服务注册等信息,路径由ORACLE_HOME环境变量决定:
$ORACLE_HOME/network/log/listener.log(如/opt/oracle/product/19c/network/log/listener.log)。# 查看完整日志
cat $ORACLE_HOME/network/log/listener.log
# 分页查看
less $ORACLE_HOME/network/log/listener.log
# 实时查看最新日志
tail -f $ORACLE_HOME/network/log/listener.log
# 使用lsnrctl命令快速查看状态(包含简要日志)
lsnrctl status
若路径不存在,可通过echo $ORACLE_HOME确认Oracle安装目录。审计日志记录了用户对数据库的操作(如登录、数据修改),路径由audit_file_dest参数指定:
$ORACLE_BASE/admin/<数据库名>/adump目录(如/u01/app/oracle/admin/orcl/adump)。# 进入审计日志目录
cd $ORACLE_BASE/admin/orcl/adump
# 查看所有审计日志文件
ls -lh *.aud
# 查看特定日志文件内容
cat orcl_ora_12345.aud
可通过SHOW PARAMETER audit_file_dest命令确认audit_file_dest的实际值。跟踪文件用于深度诊断数据库问题(如性能瓶颈、错误堆栈),分为后台跟踪文件(数据库进程生成)和用户跟踪文件(用户会话生成):
v$diag_info视图查询,关键路径为Default Trace File:-- SQL*Plus中执行,获取默认跟踪文件路径
SELECT value FROM v$diag_info WHERE name = 'Default Trace File';
输出示例:/u01/app/oracle/diag/rdbms/orcl/ORCL/trace/ORCL_ora_12345.trc。# 使用文本编辑器查看(如vi)
vi $ORACLE_BASE/diag/rdbms/orcl/ORCL/trace/ORCL_ora_12345.trc
# 使用less分页查看
less $ORACLE_BASE/diag/rdbms/orcl/ORCL/trace/ORCL_ora_12345.trc
跟踪文件较大,建议使用less或grep过滤关键信息(如ERROR)。若系统使用Systemd管理Oracle服务(如lsnrctl、oracle),可通过journalctl查看服务日志:
journalctl -u lsnrctl.service -b --no-pager
(-b表示当前启动周期,--no-pager取消分页)journalctl -u oracle.service -b --no-pager
此方法适用于通过Systemd启动的Oracle服务(需提前配置服务文件)。<数据库名>、<实例名>、ORACLE_HOME等需替换为实际值,可通过以下命令查询:# 查询ORACLE_HOME
echo $ORACLE_HOME
# 查询数据库名
sqlplus / as sysdba <<EOF
SELECT name FROM v\$database;
EOF
# 查询实例名
ps -ef | grep pmon | grep -v grep | awk '{print $NF}' | sed 's/_pmon_//'
alert.log.1、listener.log.20250101),需检查对应目录下的所有相关文件。init.ora、spfile)或联系数据库管理员。