Orace 11g 监听 配置修改 说明
?
在之前的Blog中有三篇文章提到了Oracle的監聽,如下:
?
OracleListener 動態注冊 與 靜態注冊
http://blog.csdn.net/tianlesoftware/article/details/5543166
?
Oracle 監聽(Listener) 中 services 說明
http://blog.csdn.net/tianlesoftware/article/details/6617827
?
Oracle 數據庫監聽配置
http://blog.csdn.net/tianlesoftware/article/details/4861572
?
?
Oracle的監聽(Listener)在缺省情況下,會在文件中記錄日志,記錄數據庫實例注冊操作、客戶端的連接等。
?
Oracle 11g中的信息如下:
[oracle@dave ~]$ lsnrctl status
?
LSNRCTL for Linux: Version 11.2.0.3.0 - Productionon 22-DEC-2012 21:36:43
?
Copyright (c) 1991, 2011, Oracle.? All rights reserved.
?
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias???????????????????? LISTENER
Version?????????????????? TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date??????????????? 22-DEC-2012 21:31:53
Uptime??????????????????? 0 days 0 hr. 4 min. 50 sec
Trace Level?????????????? off
Security????????????????? ON: Local OS Authentication
SNMP????????????????????? OFF
Listener Parameter File??/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File????????/u01/app/oracle/diag/tnslsnr/dave/listener/alert/log.xml
Listening Endpoints Summary...
?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.4)(PORT=1521)))
Services Summary...
Service "dave" has 2 instance(s).
?Instance "dave", status UNKNOWN, has 1 handler(s) for thisservice...
?Instance "dave", status READY, has 1 handler(s) for thisservice...
Service "daveXDB" has 1instance(s).
?Instance "dave", status READY, has 1 handler(s) for thisservice...
The command completed successfully
?
?
這個是Oracle 11g里的listener 的保存位置。在Oracle 11g中使用的是ADR,關于ADR 參考:
Oracle 11g 新特性 -- 自動診斷資料檔案庫(ADR) 說明
http://blog.csdn.net/tianlesoftware/article/details/8222724
?
這里是個xml文件,不方便文件,我們可以去trace目錄下,看文本格式的:
[oracle@dave trace]$ pwd
/u01/app/oracle/diag/tnslsnr/dave/listener/trace
[oracle@dave trace]$ ls
listener.log
[oracle@dave trace]$
?
[oracle@dave trace]$ tail -20 listener.log
Sat Dec 22 21:33:39 2012
22-DEC-2012 21:33:39 * service_update *dave * 0
22-DEC-2012 21:33:42 * service_update *dave * 0
22-DEC-2012 21:33:45 * service_update *dave * 0
Sat Dec 22 21:34:18 2012
22-DEC-2012 21:34:18 * service_update *dave * 0
22-DEC-2012 21:34:21 * service_update *dave * 0
22-DEC-2012 21:34:24 * service_update *dave * 0
22-DEC-2012 21:34:27 * service_update *dave * 0
Sat Dec 22 21:34:48 2012
22-DEC-2012 21:34:48 * service_update *dave * 0
Sat Dec 22 21:35:06 2012
22-DEC-2012 21:35:06 * service_update *dave * 0
Sat Dec 22 21:36:18 2012
22-DEC-2012 21:36:18 * service_update *dave * 0
Sat Dec 22 21:36:43 2012
WARNING: Subscription for node down eventstill pending
22-DEC-2012 21:36:43 *(CONNECT_DATA=(CID=(PROGRAM=)(HOST=dave)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647296))* status * 0
Sat Dec 22 21:37:34 2012
22-DEC-2012 21:37:34 * service_update *dave * 0
?
對于一些使用短連接的,頻繁的連接數據庫的應用,listener.log增長很快。有的可以在比較短的時間內(十幾天)就可以超過2GB。對于一些平臺的某些版本的Oracle,在監聽日志增大到2GB以后會導致監聽不能正常工作。
?
對于這種listener.log增長非常迅速的系統,可以關閉監聽日志,不讓監聽寫日志到文件。也可以寫個job定期清理。
?
關于Oracle Listener 的說明,官網有更多詳細描述。
Listener Control Utility
http://docs.oracle.com/cd/E11882_01/network.112/e10835/lsnrctl.htm#NETRF118
?
這里我們看2個比較常用的操作。
?
?
1. 停止寫listener log
在某些特定的場合可能會有這樣的需求。控制這個功能的參數是LOG_STATUS。 官網對這個參數的說明:To turn listenerlogging on or off.
?
--在OS層面直接使用:
lsnrctl SET LOG_STATUS {on | off}
?
--在LSNRCTL 工具中使用:
LSNRCTL> SET LOG_STATUS {on | off}
?
--查看log_status狀態:
LSNRCTL> show log_status
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to ON
The command completed successfully
?
?
說明:
之前遇到一個很奇怪的問題,就是log_status狀態是on,但是listener就是不寫日志,再次手工設置為on后,又正常寫日志。
?
LSNRCTL> setlog_status off
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to OFF
The command completed successfully
LSNRCTL> showlog_status
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to OFF
The command completed successfully
?
LSNRCTL> setlog_status on
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status"set to ON
The command completed successfully
LSNRCTL> showlog_status
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
LISTENER parameter "log_status" setto ON
The command completed successfully
?
?
2. 保存listener 的修改
保存又參數:SAVE_CONFIG控制,官網的說明:
To save the current configuration state of the listener, includingtrace level, trace file, trace directory, and logging tothe?listener.ora?file. Any changes are stored in?listener.ora,preserving formatting, comments, and case as much as possible. Beforemodification of the?listener.ora?file, a backup of the file,called?listener.bak, is created.
?
??? 我們在第一部分修改了log_status 的配置,如果沒有保存,那么在重啟監聽之后,修改就會失效,所以這里要保存,才能永久的生效。
?
LSNRCTL> save_config
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File??/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Old Parameter File??/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.bak
The command completed successfully
?
注意:
這里使用的是默認的listner,如果不是默認的,就需要加上listener_name. 如:
LSNRCTL> SAVE_CONFIG listener_name
?
保存之后,修改的內容就會寫入listener.ora 文件。
?
這里是我的的測試環境,其中listener.ora 文件多了如下內容:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
?
#----ADDED BY TNSLSNR 22-DEC-201221:59:58---
LOGGING_LISTENER = ON
#--------------------------------------------
?
?
3. 加密listener
?
有時候處于安全考慮,會需要對listener設置密碼。
?
3.1 設置監聽名
如果有多個監聽,那么需要先設置當前的監聽
LSNRCTL>set current_listener listener_name
?
?
3.2 設置密碼
使用change_password設置listener口令。
?
LSNRCTL> change_password
Old password: ???--如果原來沒有設置口令就直接回車,否則輸入原來的口令
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Password changed for LISTENER
The command completed successfully
?
--保存密碼:
LSNRCTL> save_config
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File??/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Old Parameter File??/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.bak
The command completed successfully
?
?
--加密之前:
[oracle@dave ~]$ lsnrctl status
?
LSNRCTL for Linux: Version 11.2.0.3.0 -Production on 22-DEC-2012 22:54:55
?
Copyright (c) 1991, 2011, Oracle.? All rights reserved.
?
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias???????????????????? LISTENER
Version?????????????????? TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date??????????????? 22-DEC-2012 21:57:46
Uptime??????????????????? 0 days 0 hr. 57 min. 9 sec
Trace Level?????????? ????off
Security????????????????? ON: Local OS Authentication
SNMP????????????????????? OFF
Listener Parameter File??/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File???????? /u01/app/oracle/diag/tnslsnr/dave/listener/alert/log.xml
Listening Endpoints Summary...
?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.4)(PORT=1521)))
Services Summary...
Service "dave" has 2 instance(s).
?Instance "dave", status UNKNOWN, has 1 handler(s) for thisservice...
?Instance "dave", status READY, has 1 handler(s) for thisservice...
Service "daveXDB" has 1instance(s).
?Instance "dave", status READY, has 1 handler(s) for thisservice...
?
?
--加密之后:
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias???????????????????? LISTENER
Version?????????????????? TNSLSNR for Linux: Version11.2.0.3.0 - Production
Start Date??????????????? 22-DEC-2012 22:56:19
Uptime??????????????????? 0 days 0 hr. 11 min. 2 sec
Trace Level?????????????? off
Security????????????????? ON: Password or Local OSAuthentication
SNMP????????????????????? OFF
Listener Parameter File?? /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File????????/u01/app/oracle/diag/tnslsnr/dave/listener/alert/log.xml
Listening Endpoints Summary...
?(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.4)(PORT=1521)))
Services Summary...
Service "dave" has 2 instance(s).
?Instance "dave", status UNKNOWN, has 1 handler(s) for thisservice...
?Instance "dave", status READY, has 1 handler(s) for thisservice...
Service "daveXDB" has 1instance(s).
?Instance "dave", status READY, has 1 handler(s) for this service...
The command completed successfully
?
?
--在listener.ora 文件中也會多一個配置參數:
[oracle@dave ~]$ cat/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
…
#----ADDED BY TNSLSNR 22-DEC-201221:59:58---
LOGGING_LISTENER = ON
#--------------------------------------------
?
#----ADDED BY TNSLSNR 22-DEC-201223:06:31---
PASSWORDS_LISTENER =1DF5C2FD0FE9CFA2
#--------------------------------------------
[oracle@dave ~]$
?
3.3 解除密碼
listener的密碼策略是防止stop,所以在stop時需要確認密碼,在start時不需要輸入密碼。
?
LSNRCTL> set password
Password:
The command completed successfully
使用set password輸入正確的密碼后,就可以進行stop操作了。
?
?
?
?
?
?
---------------------------------------------------------------------------------------
版權所有,文章允許轉載,但必須以鏈接方式注明源地址,否則追究法律責任!
Skype: ???tianlesoftware
QQ:???? ? tianlesoftware@gmail.com
Email: ???tianlesoftware@gmail.com
Blog:?? ? http://blog.csdn.net/tianlesoftware
Weibo: ???http://weibo.com/tianlesoftware
Twitter:? http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
轉載于:https://www.cnblogs.com/tianlesoftware/archive/2012/12/22/3609109.html
總結
以上是生活随笔為你收集整理的Orace 11g 监听 配置修改 说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简易zlib库解压缩函数封装
- 下一篇: 不弹出范围超界提示