在Linux系统中,Oracle数据库的错误日志主要位于以下几个位置,具体取决于你的Oracle安装配置:
$ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/alert_$ORACLE_SID.log
或传统位置:
$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log
$ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/
-- 查看alert日志位置
SELECT value FROM v$diag_info WHERE name = 'Diag Trace';
-- 或使用
SELECT value FROM v$parameter WHERE name = 'background_dump_dest';
# 首先设置ORACLE环境变量
source /home/oracle/.bash_profile # 或其他Oracle用户的环境文件
# 查看alert日志
cd $ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/
tail -f alert_$ORACLE_SID.log
# 或使用find命令查找
find $ORACLE_BASE -name "alert_*.log"
Oracle提供了ADRCI(ADR Command Interpreter)工具来管理诊断数据:
adrci
# 在ADRCI中执行
ADRCI> show home
ADRCI> set homepath diag/rdbms/$ORACLE_SID/$ORACLE_SID
ADRCI> show alert -tail -f # 实时查看日志
# 查看最后100行日志
tail -100 $ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/alert_$ORACLE_SID.log
# 查找特定错误
grep -i "ORA-" $ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/alert_$ORACLE_SID.log
# 按时间筛选日志
sed -n '/2023-10-01/,/2023-10-02/p' alert_$ORACLE_SID.log
$ORACLE_HOME/network/log/listener.log
$ORACLE_BASE/admin/$ORACLE_SID/adump/
$ORACLE_BASE/diag/rdbms/$ORACLE_SID/cdump/
注意:实际路径可能因Oracle版本和安装配置有所不同。如果找不到,请检查你的ORACLE_BASE和ORACLE_SID环境变量设置是否正确。