溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Oracle監(jiān)聽器

發(fā)布時間:2021-11-08 16:38:55 來源:億速云 閱讀:93 作者:柒染 欄目:建站服務器

這篇文章給大家介紹什么是Oracle監(jiān)聽器,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一直想寫寫監(jiān)聽器。

Oracle監(jiān)聽器listener是一個重要的數(shù)據(jù)庫服務器組件,在整個Oracle體系結構中,扮演著重要的作用。

監(jiān)聽器Lisener功能

從當前的Oracle版本看,Listener主要負責下面的幾方面功能:

1、  監(jiān)聽客戶端請求。監(jiān)聽器運行在數(shù)據(jù)庫服務器之上,與Oracle實例(可為多個)相關關聯(lián),是一個專門的進程process,在windows的服務項目或者Linux的運行進程列表中,都會看到對應的運行進程。Windows上名為TNSLSNRLinux/Unix平臺上是lsnrctl。監(jiān)聽器守候在服務器制定端口(默認為:1521),監(jiān)聽客戶端的請求。

2、  為客戶端請求分配Server Process。監(jiān)聽器只負責接聽請求,之后將請求轉接給Oracle Server Process。在Oracle的服務模式下,客戶端進程是不允許直接操作數(shù)據(jù)庫實例和數(shù)據(jù),而是通過一個服務進程Server Process(也稱為影子進程)作為代理。監(jiān)聽器接受到請求之后,就向操作系統(tǒng)(或者Dispatcher組件)要求fork(或分配)一個Server Process與客戶端相連。

3、  注冊實例服務。本質上將,listener是建立實例和客戶端進程之間聯(lián)系的橋梁。Listener與實例之間的聯(lián)系,就是通過注冊的過程來實現(xiàn)的。注冊的過程就是實例告訴監(jiān)聽器,它的數(shù)據(jù)庫數(shù)據(jù)庫實例名稱instance_name和服務名service_names。監(jiān)聽器注冊上這樣的信息,對客戶端請求根據(jù)監(jiān)聽注冊信息,找到正確的服務實例名稱。目前Oracle版本中,提供動態(tài)注冊和靜態(tài)注冊兩種方式。

4、  錯誤轉移failover。FailoverRAC容錯的一個重要方面功能,其功能是在數(shù)據(jù)庫實例崩潰的時候,可以自動將請求轉移到其他可用實例上的一種功能??梢蕴峁┖艽蟪潭壬系目捎眯裕?span lang="EN-US">Availability)功能。這個過程中,發(fā)現(xiàn)實例已經(jīng)崩潰,并且將請求轉移到其他實例上,就屬于是listener的功能。

5、  負載均衡衡量。在RAC架構中,Oracle實現(xiàn)了負載均衡。當一個客戶請求到來時,Oracle會根據(jù)當前RAC集群環(huán)境中所有實例的負載情況,避開負載較高的實例,將請求轉移到負載較低的實例進行處理。在早期RAC版本中,負載輕重的衡量是根據(jù)監(jiān)聽器當前維護連接數(shù)目來確定的,而不是實時查看多實例的負載。RAC環(huán)境中的監(jiān)聽器之間進行溝通通信。

 

下面的部分,會從幾個方面對監(jiān)聽器進行簡單介紹。

 

監(jiān)聽器操作

 

監(jiān)聽器在WindowsLinux/Unix平臺上,都是可以直接操作的。下面以Windows平臺操作為例,其他平臺類似。

 

在命令行窗口(CMD),輸入lsnrctl,就可以進入監(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, 請鍵入"help"以獲得信息。

 

LSNRCTL>

 

通過輸入命令help,可以查看支持的監(jiān)聽器操作。下面僅介紹常用的幾個。

 

1、  查看當前監(jiān)聽器狀態(tài)

敲入status,可以查看當前監(jiān)聽器的狀態(tài),對應操作日志信息和服務注冊信息等內(nèi)容。如下:

 

LSNRCTL> status

//連接監(jiān)聽器的名稱和信息:主機名+監(jiān)聽端口號

正在連接到 (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版本信息,在一臺機器多實例的情況下,很重要!因為版本對應向下兼容

啟動日期                  26-12-2010 19:38:03 //啟動服務時間

正常運行時間              0 2 小時 23 51

跟蹤級別                  off  //調試信息,可以設置針對監(jiān)聽器的跟蹤

安全性                    ON: Local OS Authentication  //表明啟動、關閉監(jiān)聽器的操作權限是通過OS驗證實現(xiàn)的。也就意味著,可以對監(jiān)聽器設置密碼項目,也是Oracle安全配置的一個重要方面;

SNMP                      OFF //SNMP協(xié)議開啟情況

監(jiān)聽程序參數(shù)文件          D:\oracle\network\admin\listener.ora //使用的參數(shù)

監(jiān)聽程序日志文件          D:\oracle\network\log\listener.log //操作日志位置

監(jiān)聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))

服務摘要.. //當前已經(jīng)注冊在監(jiān)聽器中的服務列表

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務的 1 個處理程序...

服務 "orcl" 包含 1 個例程。

  例程 "orcl", 狀態(tài) READY, 包含此服務的 1 個處理程序...

服務 "orclXDB" 包含 1 個例程。

  例程 "orcl", 狀態(tài) READY, 包含此服務的 1 個處理程序...

服務 "orcl_XPT" 包含 1 個例程。

  例程 "orcl", 狀態(tài) READY, 包含此服務的 1 個處理程序...

命令執(zhí)行成功

 

上面通過紅字,已經(jīng)對結果進行一定程度說明。其中,需要額外注意的下面幾項內(nèi)容。

 

監(jiān)聽程序參數(shù)文件          D:\oracle\network\admin\listener.ora //使用的參數(shù)

 

監(jiān)聽器啟動時依據(jù)參數(shù)文件的,當然沒有參數(shù)文件監(jiān)聽器也是可以啟動,那時監(jiān)聽器依據(jù)默認的行為操作。這個參數(shù)指定了監(jiān)聽器參數(shù)文件的位置,listener.ora。這個文件是一個文本類型參數(shù)文件,描述了監(jiān)聽器監(jiān)聽端口,主機名稱和靜態(tài)注冊信息。Listener.ora是隨著數(shù)據(jù)庫實例的建立之后,建立監(jiān)聽器的過程中動態(tài)配置的。

 

監(jiān)聽程序日志文件          D:\oracle\network\log\listener.log //操作日志位置

 

監(jiān)聽器日志,是一個記錄和描述監(jiān)聽器工作和錯誤的信息庫。通過仔細研究日志內(nèi)容,可以幫助我們發(fā)現(xiàn)當前的監(jiān)聽器的問題、解決連接故障和深入理解監(jiān)聽器工作原理。

 

服務 "orcl" 包含 1 個例程。

  例程 "orcl", 狀態(tài) READY, 包含此服務的 1 個處理程序...

 

上文中已經(jīng)說明,監(jiān)聽器有注冊功能,通過status命令(services命令同樣效果)??梢圆榭吹疆斍坝惺裁捶毡蛔陨?,用來檢查連接服務失敗,是常用的工具。

 

2、開啟/關閉監(jiān)聽器

監(jiān)聽器的行為受到參數(shù)文件的控制,我們有時候需要調整監(jiān)聽器的參數(shù)。調整監(jiān)聽參數(shù)的方法,可以通過Oracle提供的GUI界面完成,還可以通過手工修改listener.ora來完成。

 

因為參數(shù)文件listener.ora是一個文本文件。Oracle對于文本類型的參數(shù)文件,大多數(shù)情況下是不支持熱加載的。Pfilelistener.ora都是如此。

 

使用界面GUI,就是使用Net Configuration Assistant來配置。配置完成后,配置程序會自動重新啟動監(jiān)聽器程序,來加載修改的參數(shù)文件。如果采用手工修改listener.ora,就必須要手工的進行監(jiān)聽程序關閉和啟動。

 

LSNRCTL> stop

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

命令執(zhí)行成功

LSNRCTL> start

啟動tnslsnr: 請稍候...

 

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

啟動日期                  26-12-2010 22:32:34

正常運行時間              0 0 小時 0 2

跟蹤級別                  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)聽端點概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))

服務摘要..

服務 "PLSExtProc" 包含 1 個例程。

  例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務的 1 個處理程序...

命令執(zhí)行成功

 

這里多說一句關于監(jiān)聽器的參數(shù)配置。使用GUI可以滿足大部分的情況,而且可以避免拼寫錯誤引發(fā)的監(jiān)聽器故障(監(jiān)聽器不會檢查配置項目的正確與否)。但是,在一些比較復雜的情況下,比如一臺機器綁定多個IP的情況,或者RAC的復雜功能配置上,還是傾向于使用手工編寫listener.ora的方法。

此外,lsnrctl提示行還提供了reload命令,可以在listener啟動的情況下,重新加載文件和SID信息。但是筆者還是比較喜歡stop+start的組合。

如果是在windows平臺下,啟動關閉監(jiān)聽器還可以在系統(tǒng)服務項目列表中操作,效果是一樣的。

了解了監(jiān)聽器工具,下期讓我們看看監(jiān)聽器是怎么工作的。

關于什么是Oracle監(jiān)聽器就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI