一、監(jiān)聽(tīng)器(LISTENER)
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東興免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
監(jiān)聽(tīng)器是Oracle基于服務(wù)器端的一種網(wǎng)絡(luò)服務(wù),主要用于監(jiān)聽(tīng)客戶端向數(shù)據(jù)庫(kù)服務(wù)器端提出的連接請(qǐng)求。既然是基于服務(wù)器端的服務(wù),那么它也只存在于數(shù)據(jù)庫(kù)服務(wù)器端,進(jìn)行監(jiān)聽(tīng)器的設(shè)置也是在數(shù)據(jù)庫(kù)服務(wù)器端完成的。
二、本地服務(wù)名(Tnsname)
Oracle客戶端與服務(wù)器端的連接是通過(guò)客戶端發(fā)出連接請(qǐng)求,由服務(wù)器端監(jiān)聽(tīng)器對(duì)客戶端連接請(qǐng)求進(jìn)行合法檢查,如果連接請(qǐng)求有效,則進(jìn)行連接,否則拒絕該連接。
本地服務(wù)名是Oracle客戶端網(wǎng)絡(luò)配置的一種,另外還有Oracle名字服務(wù)器(Oracle Names Server)等。Oracle常用的客戶端配置就是采用的本地服務(wù)名,本文中介紹的也主要是基于本地服務(wù)名的配置。
三、Oracle網(wǎng)絡(luò)連接配置方法
配置Oracle服務(wù)器端與客戶端都可以在其自帶的圖形化Oracle網(wǎng)絡(luò)管理器(Oracle Net Manager)里完成(強(qiáng)烈建議在這個(gè)圖形化的工具下完成Oracle服務(wù)端或客戶端的配置)。在Windows下,點(diǎn)擊“開(kāi)始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”啟動(dòng)Oracle網(wǎng)絡(luò)管理器工具,在Linux/Unix下,利用netmgr命令來(lái)啟動(dòng)圖形化Oracle網(wǎng)絡(luò)管理器,如:
$ netmgr
Windows下啟動(dòng)Net Manager圖形窗口如下圖示:
1、?Oracle監(jiān)聽(tīng)器配置(LISTENER)
如上圖示,選中樹(shù)形目錄中監(jiān)聽(tīng)程序項(xiàng),再點(diǎn)擊左上側(cè)“+”按鈕添加監(jiān)聽(tīng)程序,點(diǎn)擊監(jiān)聽(tīng)程序目錄,默認(rèn)新加的監(jiān)聽(tīng)器名稱是LISTENER(該名稱也可以 由任意合法字符命名)。選中該名稱,選中窗口右側(cè)欄下拉選項(xiàng)中的“監(jiān)聽(tīng)位置”,點(diǎn)擊添加地址按鈕。在出現(xiàn)的網(wǎng)絡(luò)地址欄的協(xié)議下拉選項(xiàng)中選中 “TCP/IP”,主機(jī)文本框中輸入主機(jī)名稱或IP地址(如果主機(jī)即用作服務(wù)端也作為客戶端,輸入兩項(xiàng)之一均有效;如果主機(jī)作為服務(wù)端并需要通過(guò)網(wǎng)絡(luò)連 接,建議輸入IP地址),端口文本框中輸入數(shù)字端口,默認(rèn)是1521,也可以自定義任意有效數(shù)字端口。配置好的監(jiān)聽(tīng)位置如下圖示:
選中窗口右側(cè)欄下拉選項(xiàng)中的“數(shù)據(jù)庫(kù)服務(wù)”,點(diǎn)擊添加數(shù)據(jù)庫(kù)按鈕。在出現(xiàn)的數(shù)據(jù)庫(kù)欄中輸入全局?jǐn)?shù)據(jù)庫(kù)名,如myoracle。注意這里的全局?jǐn)?shù)據(jù)庫(kù)名與數(shù)據(jù) 庫(kù)SID有所區(qū)別,全局?jǐn)?shù)據(jù)庫(kù)名實(shí)際通過(guò)域名來(lái)控制在同一網(wǎng)段內(nèi)數(shù)據(jù)庫(kù)全局命名的唯一性,就如Windows下的域名控制器,如這里可以輸入 myoracle.192.168.1.5。Oracle主目錄可以不填寫(xiě),輸入SID,如myoracle。完整的數(shù)據(jù)庫(kù)服務(wù)配置如下圖示:
保存以上配置,默認(rèn)即可在Oracle安裝目錄下找到監(jiān)聽(tīng)配置文件 (Windows下如D:oracleora92networkadminlistener.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。至此,Oracle服務(wù)端監(jiān)聽(tīng)器配置已經(jīng)完成。
2、?本地服務(wù)名配置(Tnsnames)
本地服務(wù)名是基于Oracle客戶端的網(wǎng)絡(luò)配置,所以,如果客戶端需要連接數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行操作,則需要配置該客戶端,其依附對(duì)象可以是任意一臺(tái)欲連接數(shù)據(jù) 庫(kù)服務(wù)器進(jìn)行操作的pc機(jī),也可以是數(shù)據(jù)庫(kù)服務(wù)器自身。如前面所介紹,可以利用Oracle自帶的圖形化管理工具Net Manager來(lái)完成Oracle客戶端的配置。選中如圖(一)中的服務(wù)命名,再點(diǎn)擊左上側(cè)“+”按鈕,彈出如下圖示對(duì)話框:
輸入Net服務(wù)名,如myoracle,點(diǎn)擊下一步,進(jìn)入下圖示對(duì)話框:
選中TCP/IP(Internet協(xié)議),點(diǎn)擊下一步,如下圖示:
輸入主機(jī)名與端口號(hào)。注意這里的主機(jī)名與端口號(hào)必須與數(shù)據(jù)庫(kù)服務(wù)器端監(jiān)聽(tīng)器配置的主機(jī)名和端口號(hào)相同。點(diǎn)擊下一步,如下圖示:
選 中(Oracle8i或更高版本)服務(wù)名,輸入服務(wù)名。這里的服務(wù)名實(shí)際上就是數(shù)據(jù)庫(kù)服務(wù)器端監(jiān)聽(tīng)器配置中的全局?jǐn)?shù)據(jù)庫(kù)名,前者與后者必須相同。連接類型 通常選專用服務(wù)器,這要視數(shù)據(jù)庫(kù)服務(wù)器的配置而定,如果配置的共享數(shù)據(jù)庫(kù)服務(wù)器,這里的連接類型就要選共享服務(wù)器,否則建議選專用服務(wù)器(關(guān)于專用服務(wù)器 的介紹請(qǐng)參閱相關(guān)文檔)。配置好后點(diǎn)擊下一步,如下圖示:
如果數(shù)據(jù)庫(kù)服務(wù)器端相關(guān)服務(wù)啟動(dòng)了,可以點(diǎn)擊測(cè)試按鈕進(jìn)行連接測(cè)試。Oracle默認(rèn)是通過(guò)scott/tiger用戶進(jìn)行測(cè)試連接,由于scott用戶是 Oracle自帶的示例用戶,對(duì)于正式的業(yè)務(wù)數(shù)據(jù)庫(kù)或?qū)I(yè)測(cè)試數(shù)據(jù)庫(kù)可能沒(méi)有配置這個(gè)用戶,所以需要更改成有效的用戶登錄才可能測(cè)試成功。如果這里測(cè)試連 接不成功,也不要緊,先點(diǎn)完成按鈕結(jié)束配置。
回 到Oracle網(wǎng)絡(luò)管理器(Oracle Net Manager)主窗口,保存配置,默認(rèn)即可在Oracle安裝目錄下找到本地服務(wù)名配置文件 (Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。配置完成的本地服務(wù)名如下圖示:
樹(shù)形目錄下的服務(wù)命名可以通過(guò)編輯菜單里的重命名菜單更改成任意合法字符組成的服務(wù)名稱,注意服務(wù)名稱前不能有空格字符,否則可能無(wú)法連接數(shù)據(jù)庫(kù)服務(wù)器。
3、?連接數(shù)據(jù)庫(kù)服務(wù)器
(1)???啟動(dòng)服務(wù)器端監(jiān)聽(tīng)器與數(shù)據(jù)庫(kù)服務(wù)
Linux/Unix下,啟動(dòng)監(jiān)聽(tīng)器:
$ lsnrctl start
關(guān)閉監(jiān)聽(tīng)器:
$ lsnrctl stop
查看監(jiān)聽(tīng)狀態(tài):
$ lsnrctl status
啟動(dòng)數(shù)據(jù)庫(kù):
$ sqlplus /nolog
SQLconn sys@myoracle as sysdba?? --這里的myoracle是前面配置的客戶端本地服務(wù)名
或
SQLconn / as sysdba
SQLstartup
Windows下,啟動(dòng)監(jiān)聽(tīng)器:
C:lsnrctl start
啟動(dòng)Oracle實(shí)例服務(wù):
C:oradim ?a href="" class="none" title="cs" rel="external"cstartup –sid myoracle
關(guān)閉Oracle實(shí)例服務(wù):
C:oradim –shutdown –sid myoracle
以上服務(wù)必須同時(shí)啟動(dòng),客戶端才能連接數(shù)據(jù)庫(kù)。由于默認(rèn)配置的監(jiān)聽(tīng)器名稱是Listener,上述命令可以正常啟動(dòng)監(jiān)聽(tīng)器,如果監(jiān)聽(tīng)器名稱是其它名稱,如aListener,則需要用下列方式才能啟動(dòng):
Linux/Unix下:
$ lsnrctl start aListener
Windows下:
C:lsnrctl start aListener
(2)???測(cè)試連接數(shù)據(jù)庫(kù)服務(wù)器
測(cè)試的方法多種多樣,可以在上面配置本地服務(wù)名時(shí)進(jìn)行測(cè)試,也可以是第三方客戶端工具,如PL/SQL Developer,最方便的是用Oracle自帶的sqlplus工具,以下利用sqlplus進(jìn)行測(cè)試:
C:sqlplus /nolog
SQLconn zgh@myoracle
已連接。
1、打開(kāi)cmd輸入netca。
2、選擇【本地net服務(wù)名配置】→下一步。
3、選擇【添加】→下一步。
4、在【服務(wù)名】中輸入你想要連接的服務(wù)器上的oracle服務(wù)的名字→下一步。
5、選擇【tcp】→下一步。
6、在【主機(jī)名】中輸入你想要連接的服務(wù)器ip,端口號(hào)不變→下一步。
7、選擇【進(jìn)行測(cè)試】→下一步。(當(dāng)然你也可以選擇不測(cè)試)
※1測(cè)試如果不通過(guò),點(diǎn)擊【更改登錄】輸入一個(gè)肯定能登入的【用戶名】和【口令】→確定,出現(xiàn)【正在連接...測(cè)試成功?!勘砻鳒y(cè)試成功。
※2測(cè)試不通過(guò)的話,點(diǎn)【上一步】確認(rèn)你寫(xiě)的【服務(wù)名】和【主機(jī)名】,確認(rèn)無(wú)誤的情況下,確認(rèn)你要連接的服務(wù)器oracle監(jiān)聽(tīng)服務(wù)已經(jīng)打開(kāi)。
8、在【net服務(wù)名中】輸入你想要使用的本地的服務(wù)名→下一步。
※就是【sqlplus
user/passwd
@本地服務(wù)名】。
9、選擇【否】→下一步。
10、出現(xiàn)【net服務(wù)配置完畢】字樣→下一步。
11、點(diǎn)擊【完成】完成服務(wù)配置。
12、在上面服務(wù)配置完成以后,在cmd中輸入如下命令即可遠(yuǎn)程登錄oracle服務(wù)器:
sqlplus
user_name/password@本地服務(wù)名
一定記住,上面的本地服務(wù)名是你第8步寫(xiě)的服務(wù)名。
13、如果sqlplus
能夠進(jìn)入,PLSQL
Developer也就可以了。
---
以上,希望對(duì)你有所幫助。
可以通過(guò)GUI界面來(lái)配置監(jiān)聽(tīng):
在圖形界面下執(zhí)行(需要先su到oracle用戶下):
netca
這條命令會(huì)啟動(dòng)網(wǎng)絡(luò)配置程序,可以對(duì)監(jiān)聽(tīng)進(jìn)行配置
另外,還可以直接編輯監(jiān)聽(tīng)的配置文件來(lái)修改監(jiān)聽(tīng)。
此文件通常位于:
$ORACLE_HOME/network/admin/
監(jiān)聽(tīng)程序的配置文件名稱通常是listener.ora
環(huán)境 centos 5.4 + oracle 10g r2
已有實(shí)例 xxxio 和監(jiān)聽(tīng)listener 端口1521
現(xiàn)又新建實(shí)例 xxxdb 監(jiān)聽(tīng)名稱listener02 端口 1522實(shí)現(xiàn) listener02 只加載實(shí)例 xxxdb
1.創(chuàng)建數(shù)據(jù)庫(kù) 實(shí)例名xxxdb
2.netca 創(chuàng)建監(jiān)聽(tīng) listener02 端口1522
3.配置listener.ora 如下
# listener.ora Network Configuration File: /u01/app/oracle/product/10g//network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = xxxio)
(ORACLE_HOME = /u01/app/oracle/product/10g/)(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = +ASM)
(ORACLE_HOME = /u01/app/oracle/product/10g/))
(SID_DESC =
(SID_NAME = xxxdb)
(ORACLE_HOME = /u01/app/oracle/product/10g/))
)
SID_LIST_LISTENER02 =
(SID_LIST =
(SID_DESC =
(SID_NAME = xxxdb)
(ORACLE_HOME = /u01/app/oracle/product/10g/))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))
)
LISTENER02 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522)))
)
說(shuō)明 : 自己在配置過(guò)程中也遇到了好多問(wèn)題 ,最后通過(guò)查看資料和實(shí)際測(cè)試 證明上述的配置是正確的1.首先用netca創(chuàng)建 listener02 后 會(huì)在配置文件listener.ora中 生成如下的信息 。這說(shuō)明一個(gè)監(jiān)聽(tīng)創(chuàng)建成功。
可以啟動(dòng) 、關(guān)閉 。但是沒(méi)有加載實(shí)例。
LISTENER02 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522)))
)
2.在配置文件listener.ora 中加入如下信息 ,才能將實(shí)例xxxdb 加載到監(jiān)聽(tīng) listener02中 實(shí)現(xiàn) 各盡其職SID_LIST_LISTENER02 = --這的命名是SID_LIST_監(jiān)聽(tīng)名(SID_LIST =
(SID_DESC =
(SID_NAME = xxxdb)
(ORACLE_HOME = /u01/app/oracle/product/10g/))
)
何為一個(gè)instance配置多個(gè)監(jiān)聽(tīng),并且實(shí)現(xiàn)ClientLoadBalancing和ClientLoadBalancing。打開(kāi)NETCA,配置兩個(gè)監(jiān)聽(tīng)器。LISENTER,默認(rèn)監(jiān)聽(tīng)器,一路next,就配置完畢,監(jiān)聽(tīng)端口1521。配置LISENTER2,注意監(jiān)聽(tīng)端口改為1522,其它和LISENTER一