Oracle数据库的日志体系由Alert日志、Trace文件、重做日志(Redo Log)、**归档日志(Archived Redo Log)**等组成,其存储路径由$ORACLE_BASE(数据库基础目录)、$ORACLE_SID(实例名)和初始化参数DIAGNOSTIC_DEST(诊断目的地,默认为$ORACLE_BASE)决定。在Debian系统中,常见日志路径如下:
$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log(记录数据库重大事件,如启动/关闭、错误、死锁);$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/(记录具体进程的详细诊断信息,如ORA-错误堆栈);ARCHIVE_LOG_DEST参数指定(默认在$ORACLE_BASE/archivelog目录下,记录重做日志的归档版本,用于数据恢复)。Alert日志是数据库故障排查的首要入口,记录了数据库生命周期中的关键事件和错误。在Debian中,可通过以下方式查看:
tail -f实时监控日志更新(如tail -f /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/alert_orcl1.log);SHOW PARAMETER DIAGNOSTIC_DEST;或SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Trace';获取Alert日志路径。ORA-(Oracle错误码,如ORA-00600表示内部错误)、TNS-(监听器错误,如TNS-12541表示无监听器)、Deadlock detected(死锁信息)等关键字,记录错误发生的时间点和关联的Trace文件名。当Alert日志中出现ORA-错误时,需结合对应的Trace文件定位根本原因。Trace文件路径通常在Alert日志中明确提及(如ORA-00600错误会关联trace_XXXX.trc文件)。
less或vim命令打开(如less /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/trace_12345.trc);若故障涉及数据库连接(如“无法连接到数据库”),需查看监听日志。监听日志路径可通过以下命令获取:
SHOW PARAMETER LOG_DIRECTORY_LISTENER;;$ORACLE_HOME/network/log/listener.log(Debian中通常为/u01/app/oracle/product/19.0.0/dbhome_1/network/log/listener.log)。TNS-错误(如TNS-12541: No listener表示监听器未启动,TNS-12535: TNS:operation timed out表示网络超时)。若需追踪数据变更(如误删除数据恢复)或解决归档空间问题,需分析归档日志。
ARCHIVE LOG LIST;获取当前归档日志目录;INSERT、UPDATE)。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;;EXEC DBMS_LOGMNR_D.BUILD('/tmp/dict.ora');(将数据字典导出到外部文件);EXEC DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/u01/app/oracle/archivelog/archive_1_12345.arc', OPTIONS => DBMS_LOGMNR.NEW);;EXEC DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_EXTERNAL);;SELECT SQL_REDO, SQL_UNDO, TIMESTAMP FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SCHEMA_NAME' AND TABLE_NAME = 'TABLE_NAME';(获取指定表的变更SQL)。grep "ORA-" /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/alert_orcl1.log);awk '{print $1, $10}' alert_orcl1.log提取时间戳和错误信息);tail -f listener.log)。adrci> show alert -tail -f实时查看Alert日志,adrci> show incident查看故障事件);@?/rdbms/admin/awrrpt.sql),分析性能瓶颈(如SQL执行慢、资源占用高)。RMAN命令删除过期归档);cron定时任务或第三方工具(如Zabbix)监控日志,及时发现异常(如ORA-错误频率上升)。