alert_.log )記錄:Redo 切換、啟動/關閉、結構變更、Deadlock、ORA- 錯誤等。
位置:$ORACLE_BASE/diag/rdbms/(11g+ ADR)或 $ORACLE_BASE/admin/(舊版)。
grep "ORA-" $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log > /tmp/errors.log
直接 rm 會導致 LGWR 寫入已刪除 inode,佔用磁碟不釋放。正確做法:
# 保留最近 100 行
tail -100 $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log > /tmp/alert_trim.log
cp /tmp/alert_trim.log $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log
rm /tmp/alert_trim.log
listener.log)記錄:連線請求、協定、IP、Port、Service Name 等。
位置:$ORACLE_HOME/network/log/listener.log 或 ADR $ORACLE_BASE/diag/tnslsnr/。
lsnrctl set log_status off
# 處理檔案:備份、清空
cp $ORACLE_HOME/network/log/listener.log $BACKUP_DIR/listener_$(date +%d).log
cp /dev/null $ORACLE_HOME/network/log/listener.log
lsnrctl set log_status on
auto_listener.sh#!/bin/bash
# 每日 00:05 執行 (crontab: 5 0 * * * /home/oracle/scripts/auto_listener.sh)
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_BASE=/u01/app/oracle
export BACKUP_DIR=$ORACLE_BASE/backup/listener
rq=$(date +"%d")
cp $ORACLE_HOME/network/log/listener.log $BACKUP_DIR/listener_$rq.log
$ORACLE_HOME/bin/lsnrctl set log_status off
cp /dev/null $ORACLE_HOME/network/log/listener.log
$ORACLE_HOME/bin/lsnrctl set log_status on
ORA-、TNS- 錯誤並告警。DIAG_RETENTION(預設 720 小時)自動清理追蹤檔。oracle 執行,備份目錄需寫入權限。日誌管理核心在於「不直接刪除、動態截斷、自動化分割、錯誤主動發現」。建立標準化腳本納入排程,可避免磁碟爆滿導致資料庫掛起。