Oracle数据库的日志体系是其高可用性和可恢复性的核心保障,主要包括三类日志:
V$LOG视图可查看重做日志组信息(如组号、序列号、文件路径)。/archivelog)并保留,用于介质故障恢复(如硬盘损坏)。归档模式需通过ALTER DATABASE ARCHIVELOG;命令开启。SHOW PARAMETER BACKGROUND_DUMP_DEST;查询(如Ubuntu下通常为$ORACLE_BASE/diag/rdbms/dbname/instancename/trace/alert_instancename.log);ALTER SESSION SET TRACEFILE_IDENTIFIER = 'MY_TRACE';生成,用于SQL优化和问题定位。在Ubuntu系统中,Oracle日志文件的默认路径遵循Oracle的诊断框架(ADR,Automatic Diagnostic Repository):
$ORACLE_BASE/diag/rdbms/dbname/instancename/trace/alert_instancename.log;.trc文件(如alert_instancename.trc);/archivelog),可通过ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=mydb';命令设置。归档日志是介质恢复的核心,需重点管理其模式、监控、归档及清理:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ALTER DATABASE NOARCHIVELOG;SELECT log_mode FROM v$database;。SELECT dest_name, status, destination, space_used/1024/1024 AS used_mb, space_limit/1024/1024 AS limit_mb
FROM v$archive_dest;
ALTER SYSTEM ARCHIVE LOG ALL;
DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO DISK;
为避免日志文件占用过多磁盘空间,需通过系统工具和Oracle机制双重管理:
logrotate工具可自动轮转、压缩、删除系统日志(如/var/log/syslog),但需手动配置Oracle日志轮转(因Oracle日志不在系统日志目录下)。
/etc/logrotate.d/oracle):/u01/app/oracle/diag/rdbms/orcl/ORCL/trace/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 oracle oracle
sharedscripts
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
sudo logrotate -f /etc/logrotate.d/oracle。> $ORACLE_BASE/diag/rdbms/dbname/instancename/trace/alert_instancename.log
df -h /archivelog命令监控归档日志目录的剩余空间,若空间不足,需清理过期归档日志或扩展磁盘。日志是故障定位的关键依据,常用工具和方法:
tail -f命令实时查看警告日志或跟踪日志:tail -f $ORACLE_BASE/diag/rdbms/dbname/instancename/trace/alert_instancename.log
EXEC DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/archivelog/arch_000001.arc', OPTIONS => DBMS_LOGMNR.NEW);EXEC DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);SELECT scn, timestamp, sql_redo FROM v$logmnr_contents WHERE seg_owner = 'SCHEMA_NAME' AND table_name = 'TABLE_NAME';EXEC DBMS_LOGMNR.END_LOGMNR;。logrotate或Oracle参数控制日志文件大小(如重做日志文件大小设置为100MB~500MB)和保留时间(如归档日志保留7天)。