這篇文章給大家介紹什么是Oracle監(jiān)聽器,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
一直想寫寫監(jiān)聽器。
Oracle監(jiān)聽器listener是一個(gè)重要的數(shù)據(jù)庫服務(wù)器組件,在整個(gè)Oracle體系結(jié)構(gòu)中,扮演著重要的作用。
監(jiān)聽器Lisener功能
從當(dāng)前的Oracle版本看,Listener主要負(fù)責(zé)下面的幾方面功能:
1、 監(jiān)聽客戶端請(qǐng)求。監(jiān)聽器運(yùn)行在數(shù)據(jù)庫服務(wù)器之上,與Oracle實(shí)例(可為多個(gè))相關(guān)關(guān)聯(lián),是一個(gè)專門的進(jìn)程process,在windows的服務(wù)項(xiàng)目或者Linux的運(yùn)行進(jìn)程列表中,都會(huì)看到對(duì)應(yīng)的運(yùn)行進(jìn)程。Windows上名為TNSLSNR,Linux/Unix平臺(tái)上是lsnrctl。監(jiān)聽器守候在服務(wù)器制定端口(默認(rèn)為:1521),監(jiān)聽客戶端的請(qǐng)求。
2、 為客戶端請(qǐng)求分配Server Process。監(jiān)聽器只負(fù)責(zé)接聽請(qǐng)求,之后將請(qǐng)求轉(zhuǎn)接給Oracle Server Process。在Oracle的服務(wù)模式下,客戶端進(jìn)程是不允許直接操作數(shù)據(jù)庫實(shí)例和數(shù)據(jù),而是通過一個(gè)服務(wù)進(jìn)程Server Process(也稱為影子進(jìn)程)作為代理。監(jiān)聽器接受到請(qǐng)求之后,就向操作系統(tǒng)(或者Dispatcher組件)要求fork(或分配)一個(gè)Server Process與客戶端相連。
3、 注冊(cè)實(shí)例服務(wù)。本質(zhì)上將,listener是建立實(shí)例和客戶端進(jìn)程之間聯(lián)系的橋梁。Listener與實(shí)例之間的聯(lián)系,就是通過注冊(cè)的過程來實(shí)現(xiàn)的。注冊(cè)的過程就是實(shí)例告訴監(jiān)聽器,它的數(shù)據(jù)庫數(shù)據(jù)庫實(shí)例名稱instance_name和服務(wù)名service_names。監(jiān)聽器注冊(cè)上這樣的信息,對(duì)客戶端請(qǐng)求根據(jù)監(jiān)聽注冊(cè)信息,找到正確的服務(wù)實(shí)例名稱。目前Oracle版本中,提供動(dòng)態(tài)注冊(cè)和靜態(tài)注冊(cè)兩種方式。
4、 錯(cuò)誤轉(zhuǎn)移failover。Failover是RAC容錯(cuò)的一個(gè)重要方面功能,其功能是在數(shù)據(jù)庫實(shí)例崩潰的時(shí)候,可以自動(dòng)將請(qǐng)求轉(zhuǎn)移到其他可用實(shí)例上的一種功能??梢蕴峁┖艽蟪潭壬系目捎眯裕ˋvailability)功能。這個(gè)過程中,發(fā)現(xiàn)實(shí)例已經(jīng)崩潰,并且將請(qǐng)求轉(zhuǎn)移到其他實(shí)例上,就屬于是listener的功能。
5、 負(fù)載均衡衡量。在RAC架構(gòu)中,Oracle實(shí)現(xiàn)了負(fù)載均衡。當(dāng)一個(gè)客戶請(qǐng)求到來時(shí),Oracle會(huì)根據(jù)當(dāng)前RAC集群環(huán)境中所有實(shí)例的負(fù)載情況,避開負(fù)載較高的實(shí)例,將請(qǐng)求轉(zhuǎn)移到負(fù)載較低的實(shí)例進(jìn)行處理。在早期RAC版本中,負(fù)載輕重的衡量是根據(jù)監(jiān)聽器當(dāng)前維護(hù)連接數(shù)目來確定的,而不是實(shí)時(shí)查看多實(shí)例的負(fù)載。RAC環(huán)境中的監(jiān)聽器之間進(jìn)行溝通通信。
下面的部分,會(huì)從幾個(gè)方面對(duì)監(jiān)聽器進(jìn)行簡(jiǎn)單介紹。
監(jiān)聽器操作
監(jiān)聽器在Windows和Linux/Unix平臺(tái)上,都是可以直接操作的。下面以Windows平臺(tái)操作為例,其他平臺(tái)類似。
在命令行窗口(CMD),輸入lsnrctl,就可以進(jìn)入監(jiān)聽器控制窗口。
C:\Documents and Settings\Administrator>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 26-12月-2010 21:5
3:04
Copyright (c) 1991, 2005, Oracle. All rights reserved.
歡迎來到LSNRCTL, 請(qǐng)鍵入"help"以獲得信息。
LSNRCTL>
通過輸入命令help,可以查看支持的監(jiān)聽器操作。下面僅介紹常用的幾個(gè)。
1、 查看當(dāng)前監(jiān)聽器狀態(tài)
敲入status,可以查看當(dāng)前監(jiān)聽器的狀態(tài),對(duì)應(yīng)操作日志信息和服務(wù)注冊(cè)信息等內(nèi)容。如下:
LSNRCTL> status
//連接監(jiān)聽器的名稱和信息:主機(jī)名+監(jiān)聽端口號(hào)
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 – Production //Listener版本信息,在一臺(tái)機(jī)器多實(shí)例的情況下,很重要!因?yàn)榘姹緦?duì)應(yīng)向下兼容
啟動(dòng)日期 26-12月-2010 19:38:03 //啟動(dòng)服務(wù)時(shí)間
正常運(yùn)行時(shí)間 0 天 2 小時(shí) 23 分 51 秒
跟蹤級(jí)別 off //調(diào)試信息,可以設(shè)置針對(duì)監(jiān)聽器的跟蹤
安全性 ON: Local OS Authentication //表明啟動(dòng)、關(guān)閉監(jiān)聽器的操作權(quán)限是通過OS驗(yàn)證實(shí)現(xiàn)的。也就意味著,可以對(duì)監(jiān)聽器設(shè)置密碼項(xiàng)目,也是Oracle安全配置的一個(gè)重要方面;
SNMP OFF //SNMP協(xié)議開啟情況
監(jiān)聽程序參數(shù)文件 D:\oracle\network\admin\listener.ora //使用的參數(shù)
監(jiān)聽程序日志文件 D:\oracle\network\log\listener.log //操作日志位置
監(jiān)聽端點(diǎn)概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
服務(wù)摘要.. //當(dāng)前已經(jīng)注冊(cè)在監(jiān)聽器中的服務(wù)列表
服務(wù) "PLSExtProc" 包含 1 個(gè)例程。
例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orcl" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orclXDB" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orcl_XPT" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
命令執(zhí)行成功
上面通過紅字,已經(jīng)對(duì)結(jié)果進(jìn)行一定程度說明。其中,需要額外注意的下面幾項(xiàng)內(nèi)容。
監(jiān)聽程序參數(shù)文件 D:\oracle\network\admin\listener.ora //使用的參數(shù)
監(jiān)聽器啟動(dòng)時(shí)依據(jù)參數(shù)文件的,當(dāng)然沒有參數(shù)文件監(jiān)聽器也是可以啟動(dòng),那時(shí)監(jiān)聽器依據(jù)默認(rèn)的行為操作。這個(gè)參數(shù)指定了監(jiān)聽器參數(shù)文件的位置,listener.ora。這個(gè)文件是一個(gè)文本類型參數(shù)文件,描述了監(jiān)聽器監(jiān)聽端口,主機(jī)名稱和靜態(tài)注冊(cè)信息。Listener.ora是隨著數(shù)據(jù)庫實(shí)例的建立之后,建立監(jiān)聽器的過程中動(dòng)態(tài)配置的。
監(jiān)聽程序日志文件 D:\oracle\network\log\listener.log //操作日志位置
監(jiān)聽器日志,是一個(gè)記錄和描述監(jiān)聽器工作和錯(cuò)誤的信息庫。通過仔細(xì)研究日志內(nèi)容,可以幫助我們發(fā)現(xiàn)當(dāng)前的監(jiān)聽器的問題、解決連接故障和深入理解監(jiān)聽器工作原理。
服務(wù) "orcl" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
上文中已經(jīng)說明,監(jiān)聽器有注冊(cè)功能,通過status命令(services命令同樣效果)??梢圆榭吹疆?dāng)前有什么服務(wù)被注冊(cè)上,用來檢查連接服務(wù)失敗,是常用的工具。
2、開啟/關(guān)閉監(jiān)聽器
監(jiān)聽器的行為受到參數(shù)文件的控制,我們有時(shí)候需要調(diào)整監(jiān)聽器的參數(shù)。調(diào)整監(jiān)聽參數(shù)的方法,可以通過Oracle提供的GUI界面完成,還可以通過手工修改listener.ora來完成。
因?yàn)閰?shù)文件listener.ora是一個(gè)文本文件。Oracle對(duì)于文本類型的參數(shù)文件,大多數(shù)情況下是不支持熱加載的。Pfile和listener.ora都是如此。
使用界面GUI,就是使用Net Configuration Assistant來配置。配置完成后,配置程序會(huì)自動(dòng)重新啟動(dòng)監(jiān)聽器程序,來加載修改的參數(shù)文件。如果采用手工修改listener.ora,就必須要手工的進(jìn)行監(jiān)聽程序關(guān)閉和啟動(dòng)。
LSNRCTL> stop
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
命令執(zhí)行成功
LSNRCTL> start
啟動(dòng)tnslsnr: 請(qǐng)稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系統(tǒng)參數(shù)文件為D:\oracle\network\admin\listener.ora
寫入D:\oracle\network\log\listener.log的日志信息
監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
啟動(dòng)日期 26-12月-2010 22:32:34
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 0 分 2 秒
跟蹤級(jí)別 off
安全性 ON: Local OS Authentication
SNMP OFF
監(jiān)聽程序參數(shù)文件 D:\oracle\network\admin\listener.ora
監(jiān)聽程序日志文件 D:\oracle\network\log\listener.log
監(jiān)聽端點(diǎn)概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
服務(wù)摘要..
服務(wù) "PLSExtProc" 包含 1 個(gè)例程。
例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...
命令執(zhí)行成功
這里多說一句關(guān)于監(jiān)聽器的參數(shù)配置。使用GUI可以滿足大部分的情況,而且可以避免拼寫錯(cuò)誤引發(fā)的監(jiān)聽器故障(監(jiān)聽器不會(huì)檢查配置項(xiàng)目的正確與否)。但是,在一些比較復(fù)雜的情況下,比如一臺(tái)機(jī)器綁定多個(gè)IP的情況,或者RAC的復(fù)雜功能配置上,還是傾向于使用手工編寫listener.ora的方法。
此外,lsnrctl提示行還提供了reload命令,可以在listener啟動(dòng)的情況下,重新加載文件和SID信息。但是筆者還是比較喜歡stop+start的組合。
如果是在windows平臺(tái)下,啟動(dòng)關(guān)閉監(jiān)聽器還可以在系統(tǒng)服務(wù)項(xiàng)目列表中操作,效果是一樣的。
了解了監(jiān)聽器工具,下期讓我們看看監(jiān)聽器是怎么工作的。
關(guān)于什么是Oracle監(jiān)聽器就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站題目:什么是Oracle監(jiān)聽器-創(chuàng)新互聯(lián)
地址分享:http://jinyejixie.com/article8/dejgip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、電子商務(wù)、虛擬主機(jī)、移動(dòng)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容