監聽日誌過大,處理辦法

Oracle監聽器日誌文件(通常叫做listener.log)是一個純文本文件,它的大小是一直不斷增長的,在一個生產Oracle服務器上,DBA會每日查看該文件,如檢查監聽器是否有異常停止,是否有惡意***連接等,當這個文件特別大的時候,打開和瀏覽文件內容時可能比較慢。這時可能會想到將當前的日誌文件備份一下,然後重新創建一個新的日誌文件,但Oracle的監聽器在運行時是不允許對其日誌文件做刪除,重命名操作,於是只有停止監聽器。重命名後,再啓動監聽器,啓動時會自動創建一個新的監聽器日誌文件,但這樣客戶端連接就會斷開,本文介紹一種方法在不停止監聽器的情況下,重命名監聽器日誌文件。

監聽器命令(WINDOWS在命令行下操作,LINUX和AIX均同命令) 
lsnrctl set log_status off     
lsnrctl set log_status on 

實例:AIX、ORACLE10G
1、處理前(listener_p550a.log很大)
p550a:/home/oracle/database/network/log#ls -lt
總計 2356504
-rw-r--r--   1 oracle   dba      1195793131  3月11 09時59 listener_p550a.log
-rw-r--r--   1 oracle   dba        10698028  3月10 22時25 sqlnet.log

2、lsnrctl set log_status off
p550a:/#su - oracle
$ lsnrctl set log_status off  
 
LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Production on 11-MAR-2011 10:02:38
 
Copyright (c) 1991, 2006, Oracle.  All rights reserved.
 
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER parameter "log_status" set to OFF
The command completed successfully

3、移動文件到備份路徑,釋放空間
p550a:/home/oracle/database/network/log#mv listener_p550a.log /bak

4、lsnrctl set log_status on
$ lsnrctl set log_status on
 
LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Production on 11-MAR-2011 10:06:12
 
Copyright (c) 1991, 2006, Oracle.  All rights reserved.
 
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER parameter "log_status" set to ON
The command completed successfully

5、再來看看,已經自動新建了listener_p550a.log
p550a:/home/oracle/database/network/log#ls -lt
總計 20928
-rw-r--r--   1 oracle   dba             102  3月11 10時06 listener_p550a.log
-rw-r--r--   1 oracle   dba        10698028  3月10 22時25 sqlnet.log
p550a:/home/oracle/database/network/log#

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章