Oracle listener log配置與管理

sqysl發表於2020-01-21

十一假期間,某客戶因為監聽日誌問題導致系統登入掛起,當時在返京的路上,因客戶業務不允許中斷,無奈之下,借了個本子幫客戶做了緊急處理,今天恰好有空,在網上搜了下有關監聽日誌的內容,發現一個不錯的帖子,內容比較全,且比較準確,記錄一下,以便同學和自己今後研究學習。該貼轉自:https://blog.csdn.net/leshami/article/details/6629043。


--========================

-- Oracle  listener log配置與管理

--========================

    Oracle 監聽器是一個伺服器端程式,用於監聽所有來自客戶端的請求,併為其提供資料庫服務。因此對監聽器的管理與維護相當重要。


本文主要描述對Oracle listener log的配置與管理。有關監聽器的描述請參考


    配置 ORACLE 客戶端連線到資料庫


    配置非預設埠的動態服務註冊   


一、 listener log特性


1.   listener log是一個純文字檔案,通常位於$ORACLE_HOME/network/log目錄下,與sqlnet.log日誌檔案處於同一路徑            

2.  其預設的檔名為listener.log。對於非預設的監聽器,則產生的日誌檔案通常為listenername.log                        

3.  該檔案預設由監聽器自動建立,當日志檔案丟失時或不存在時,會自動重新建立一個同名的檔案,與alert_<SID>.log檔案類似

4.  該檔案的尺寸會不斷自動增長,當尺寸過大時或不便於閱讀時,考慮將其備份                                            

5.  Oracle監聽器在執行時不允許對日誌檔案做刪除,重新命名操作                                                          

6.  可以設定日誌狀態為ON或OFF來實現啟用或關閉日誌     

二、設定日誌檔案目錄及路徑


       1.  設定日誌檔案目錄的兩種方法        


lsnrctl SET LOG_DIRECTORY directory


LSNRCTL> SET LOG_DIRECTORY /usr/oracle/admin/log


       2.   設定日誌檔案的兩種方法      


lsnrctl SET LOG_FILE file_name


LSNRCTL> SET LOG_FILE file_name


       3.   設定日誌的狀態      


lsnrctl ET LOG_STATUS {on | off}


LSNRCTL> SET LOG_STATUS {on | off}


       4.   演示設定

        a.   切換到日誌目錄檢視日誌檔案          


[oracle@test ~]$ cd $ORACLE_HOME/network/log


[oracle@test log]$ ls -hltr


total 348K


-rw-r--r-- 1 oracle oinstall 305K Apr 6 05:30 listener.log


-rw-r--r-- 1 oracle oinstall 26K Jun 27 01:52 listener_demo92.log


       b.   檢視當前監聽器的狀態          


[oracle@test log]$ lsnrctl status listener_demo92


LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 27-JUN-2011 01:54:31


Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))


STATUS of the LISTENER


------------------------


Alias listener_demo92


Version TNSLSNR for Linux: Version 9.2.0.8.0 - Production


Start Date 27-JUN-2011 01:52:18


Uptime 0 days 0 hr. 2 min. 13 sec


Trace Level off


Security ON


SNMP OFF


Listener Parameter File /oracle/92/network/admin/listener.ora


Listener Log File /oracle/92/network/log/listener_demo92.log


Listening Endpoints Summary...


(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521)))


(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))


Services Summary...


Service "demo92" has 1 instance(s).


Instance "demo92", status READY, has 1 handler(s) for this service...


The command completed successfully


        c.   設定監聽器目錄及日誌檔案


LSNRCTL> set current_listener listener_demo92


Current Listener is listener_demo92


LSNRCTL> set password


Password:


The command completed successfully


LSNRCTL> set log_directory /home/oracle/log


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))


listener_demo92 parameter "log_directory" set to /home/oracle/log


The command completed successfully


LSNRCTL> set log_file listener_test.log


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))


listener_demo92 parameter "log_file" set to listener_test.log


The command completed successfully


LSNRCTL> set log_status on


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))


listener_demo92 parameter "log_status" set to ON


The command completed successfully


LSNRCTL> save_config


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))


Saved listener_demo92 configuration parameters.


Listener Parameter File /oracle/92/network/admin/listener.ora


Old Parameter File /oracle/92/network/admin/listener.bak


The command completed successfully


LSNRCTL> exit


        d.   檢視新路徑下產生的日誌檔案 


[oracle@test admin]$ cd /home/oracle/log


[oracle@test log]$ ls -hltr


total 16K


-rw-r--r-- 1 oracle oinstall 41 Jun 27 02:11 listener_demo92.log -->設定目錄之後生成的


-rw-r--r-- 1 oracle oinstall 113 Jun 27 02:12 listener_test.log -->設定日誌檔名之後的新日誌檔案


[oracle@test log]$ ls -hltr -->隔段時間檢視,原來的日誌檔案不再增長,使用設定的日誌檔名記錄日誌


total 16K


-rw-r--r-- 1 oracle oinstall 41 Jun 27 02:11 listener_demo92.log


-rw-r--r-- 1 oracle oinstall 1.3K Jun 27 02:17 listener_test.log


        e.   檢視listener.ora配置檔案的變化


[oracle@test admin]$ more listener.ora


#----ADDED BY TNSLSNR 27-JUN-2011 02:12:37---


LOG_DIRECTORY_listener_demo92 = /home/oracle/log


LOG_FILE_listener_demo92 = listener_test.log


LOGGING_listener_demo92 = ON


#--------------------------------------------


三、日誌檔案的備份與重新命名


    通常情況下,需要停止監聽器來對日誌檔案進行備份,下面使用不停止監聽的情況下對日誌檔案重新命名以實現備份

        1. Windows平臺的處理           


C:\>cd \oracle\ora92\network\log -->切換到 listener log所在目錄


C:\oracle\ora92\network\log> lsnrctl set log_status off -->暫停或離線記錄日誌檔案


C:\oracle\ora92\network\log> rename listener.log listener.old -->重新命名日誌檔案,一般加上日期


C:\oracle\ora92\network\log> lsnrctl set log_status on -->聯機 listener log,會自動重新建立一個新的日誌檔案


        2. Unix/Linux平臺的處理          


$ lsnrctl set log_status off


$ mv listener.log listener.old -->另一種方法,cp listener.log /log/bak/. 然後 cp /dev/null >listener.log


$ lsnrctl set log_status on


        3. 演示Linux平臺下重新命名日誌檔案                           


[oracle@test ~]$ cd /home/oracle/log


[oracle@test log]$ lsnrctl set log_status off -->如果存在密碼,應使用LSNRCTL介面來完成


LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 27-JUN-2011 02:41:09


Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.


Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))


LISTENER parameter "log_status" set to OFF


The command completed successfully


[oracle@test log]$ mv listener_test.log listener_test.old


[oracle@test log]$ lsnrctl set log_status on


LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 27-JUN-2011 02:41:31


Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.


Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))


LISTENER parameter "log_status" set to ON


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2674164/,如需轉載,請註明出處,否則將追究法律責任。

相關文章