您好,登錄后才能下訂單哦!
十一假期間,某客戶因為監聽日志問題導致系統登錄掛起,當時在返京的路上,因客戶業務不允許中斷,無奈之下,借了個本子幫客戶做了緊急處理,今天恰好有空,在網上搜了下有關監聽日志的內容,發現一個不錯的帖子,內容比較全,且比較準確,記錄一下,以便同學和自己今后研究學習。該貼轉自: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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。