1. 程式人生 > >Oracle 監聽器日誌 listener.log檔案過大處理

Oracle 監聽器日誌 listener.log檔案過大處理

今天遇到報警,alert.log報出異常

WARNING: inbound connection timed out (ORA-3136)
Thu Nov 21 11:13:49 2013
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 21 11:14:54 2013
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 21 11:15:01 2013
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 21 11:15:49 2013
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 21 11:16:18 2013
WARNING: inbound connection timed out (ORA-3136)
Thu Nov 21 11:31:00 2013
WARNING: inbound connection timed out (ORA-3136)

分析原因:

1:資料庫負載正常

2:沒有發現有Dos攻擊跡象

3:防火牆的策略沒有問題  防火牆的問題應該是長期的問題,不會今天報出超時,而以前沒有。

檢視listener.log 與sqlnet.log 發現主要是某app伺服器上PHP應用連結異常,此問題先報給SA進行分析。

在檢視listener.log時發現檔案最新內容是上月的記錄,查看了lsnrctl的狀態也均執行正常。

LSNRCTL> show  
The following operations are available after show
An asterisk (*) denotes a modifier or extended command:

rawmode                     displaymode                 
rules                       trc_file                    
trc_directory               trc_level                   
log_file                    log_directory               
log_status                  current_listener            
inbound_connect_timeout     startup_waittime            
snmp_visible                save_config_on_stop         
dynamic_registration        

LSNRCTL> show log_file
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxx)(PORT=1521)))
LISTENER parameter "log_file" set to listener.log
The command completed successfully
LSNRCTL> show log_status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxx)(PORT=1521)))
LISTENER parameter "log_status" set to ON
The command completed successfully
LSNRCTL> show log_directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxx)(PORT=1521)))
LISTENER parameter "log_directory" set to /u01/app/product/oracle/10.2.0/network/log/
The command completed successfully
LSNRCTL> 
監聽目前處於正常狀態,日誌功能也開啟,後來一想,原來是日誌檔案大小已滿。

處理:

1:首先 停止日誌

LSNRCTL> set  log_status off   


2:到目錄/u01/app/product/oracle/10.2.0/network/log/

mv   listener.log  listener.log.bak

3:開啟日誌 

LSNRCTL> set  log_status on

4:重新載入監聽器
LSNRCTL> reload                          
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxxxxxx)(PORT=1521)))
The command completed successfully
LSNRCTL> 

5:目錄下重新生成新的日誌,壓縮儲存
tar zcvf listener-20131121.log.tar.gz  listener.log.bak

刪除原有的日誌:
rm   listener.log.bak

今後準備編寫指令碼,定期備份監聽日誌,避免出現些滿的情況。

具體導致超時的原因目前還沒具體確定,請各位高手指點一下。望有處理此類似超時情況的朋友不吝賜教。