Debian上Oracle日志管理实操指南
一 日志类型与定位
二 查看与实时监控
less $ORACLE_HOME/network/log/listener.logtail -f $ORACLE_HOME/network/log/listener.logadrci → show alert 或 show trace;必要时调整保留策略:set control (SHORTP_POLICY=168); set control (LONGP_POLICY=240);(单位:小时)cd <audit_file_dest>(路径由参数 audit_file_dest 决定)find . -mtime +15 -deletejournalctl -u lsnrctl.service -b --no-pager三 轮转与清理
/etc/logrotate.d/oracle/u01/app/oracle/diag/tnslsnr/*/trace/*.log
/u01/app/oracle/diag/rdbms/*/*/trace/*.log
/u01/app/oracle/diag/rdbms/*/*/alert/*.xml
{
daily
missingok
size 100M
rotate 4
compress
delaycompress
notifempty
copytruncate
create 0640 oracle oinstall
}
logrotate -d /etc/logrotate.d/oraclelogrotate -f /etc/logrotate.d/oracleSELECT log_mode FROM v$database;ALTER DATABASE ARCHIVELOG;(切换前确保有足够的磁盘空间与备份策略)RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;(按实际保留策略设置更精细的备份与删除窗口)。四 分析与容量控制
SELECT thread#, MIN(sequence#), MAX(sequence#) FROM v$archived_log WHERE completion_time BETWEEN TO_DATE('2025-11-01','YYYY-MM-DD') AND TO_DATE('2025-11-02','YYYY-MM-DD') GROUP BY thread#;EXEC DBMS_LOGMNR_D.BUILD('/path/to/dict', '/path/to/dict', DBMS_LOGMNR_D.STORE_IN_FILE);EXEC DBMS_LOGMNR.START_LOGMNR(START_SCN=>:start_scn, END_SCN=>:end_scn, OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);SELECT * FROM V$LOGMNR_CONTENTS ...;SELECT a.tablespace_name, ROUND(a.bytes/1024/1024,2) "总大小(MB)", ROUND((a.bytes-b.bytes)/1024/1024,2) "已用(MB)", ROUND((a.bytes-b.bytes)/a.bytes*100,2) "使用率%" FROM (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name=b.tablespace_name;SELECT sql_id, sql_text, elapsed_time/1e6 "耗时(秒)", executions FROM v$sql ORDER BY elapsed_time DESC FETCH FIRST 10 ROWS ONLY;find <audit_file_dest> -mtime +15 -delete(请先确认合规保留周期与备份)。五 运维要点与排错清单
su - oracle -c "..." 运行;logrotate 配置中的 create 0640 oracle oinstall 可按实际用户组调整。postrotate ... endscript 触发重开。