Oracle 監聽器日誌配置與管理
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
--========================-- Oracle 監聽器日誌配置與管理
--========================
Oracle 監聽器是一個伺服器端程式,用於監聽所有來自客戶端的請求,併為其提供資料庫服務。因此對監聽器的管理與維護相當重要。
本文主要描述對Oracle監聽器日誌檔案的配置與管理。有關監聽器的描述請參考
一、監聽器日誌特性
1. 監聽器日誌是一個純文字檔案,通常位於$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 SET LOG_STATUS {on | off} LSNRCTL> SET LOG_STATUS {on | off}
4. 演示設定
a. 切換到日誌目錄檢視日誌檔案
[[email protected] ~]$ cd $ORACLE_HOME/network/log [[email protected] 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. 檢視當前監聽器的狀態
[[email protected] 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. 檢視新路徑下產生的日誌檔案
[[email protected] admin]$ cd /home/oracle/log [[email protected] 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 -->設定日誌檔名之後的新日誌檔案 [[email protected] 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配置檔案的變化
[[email protected] 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 -->切換到監聽器日誌檔案所在目錄 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 -->聯機監聽器日誌檔案,會自動重新建立一個新的日誌檔案
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平臺下重新命名日誌檔案
[[email protected] ~]$ cd /home/oracle/log [[email protected] 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 The command completed successfully
四、 快捷參考
有關效能優化請參考
有關ORACLE體系結構請參考
Oracle聯機重做日誌檔案(ONLINE LOG FILE)
Oracle例項和Oracle資料庫(Oracle體系結構)
有關閃回特性請參考
Oracle閃回特性(FLASHBACK DATABASE)
Oracle閃回特性(FLASHBACK DROP & RECYCLEBIN)
Oracle閃回特性(Flashback Query、FlashbackTable)
Oracle閃回特性(Flashback Version、Flashback Transaction)
有關基於使用者管理的備份和備份恢復的概念請參考
Oracle基於使用者管理恢復的處理(詳細描述了介質恢復及其處理)
有關RMAN的備份恢復與管理請參考
RMAN 備份路徑困惑(使用plus archivelog時)
有關ORACLE故障請參考
對引數FAST_START_MTTR_TARGET= 0 的誤解及設定
有關ASM請參考
有關SQL/PLSQL請參考
SQL 基礎--> 集合運算(UNION與UNION ALL)
SQL 基礎--> 層次化查詢(STARTBY ... CONNECT BY PRIOR)
SQL 基礎--> ROLLUP與CUBE運算子實現資料彙總
有關ORACLE其它特性
使用OEM,SQL*Plus,iSQL*Plus 管理Oracle例項
日誌記錄模式(LOGGING、FORCE LOGGING 、NOLOGGING)
使用外部表管理Oracle 告警日誌(ALAERT_$SID.LOG)
簇表及簇表管理(Index clustered tables)
ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME
Oracle補丁全集 (Oracle 9i 10g 11g Path)