重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
一、監聽器(LISTENER)
專注于為中小企業提供網站制作、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業侯馬免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了超過千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
監聽器是Oracle基于服務器端的一種網絡服務,主要用于監聽客戶端向數據庫服務器端提出的連接請求。既然是基于服務器端的服務,那么它也只存在于數據庫服務器端,進行監聽器的設置也是在數據庫服務器端完成的。
二、本地服務名(Tnsname)
Oracle客戶端與服務器端的連接是通過客戶端發出連接請求,由服務器端監聽器對客戶端連接請求進行合法檢查,如果連接請求有效,則進行連接,否則拒絕該連接。
本地服務名是Oracle客戶端網絡配置的一種,另外還有Oracle名字服務器(Oracle Names Server)等。Oracle常用的客戶端配置就是采用的本地服務名,本文中介紹的也主要是基于本地服務名的配置。
三、Oracle網絡連接配置方法
配置Oracle服務器端與客戶端都可以在其自帶的圖形化Oracle網絡管理器(Oracle Net Manager)里完成(強烈建議在這個圖形化的工具下完成Oracle服務端或客戶端的配置)。在Windows下,點擊“開始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”啟動Oracle網絡管理器工具,在Linux/Unix下,利用netmgr命令來啟動圖形化Oracle網絡管理器,如:
$ netmgr
Windows下啟動Net Manager圖形窗口如下圖示:
1、?Oracle監聽器配置(LISTENER)
如上圖示,選中樹形目錄中監聽程序項,再點擊左上側“+”按鈕添加監聽程序,點擊監聽程序目錄,默認新加的監聽器名稱是LISTENER(該名稱也可以 由任意合法字符命名)。選中該名稱,選中窗口右側欄下拉選項中的“監聽位置”,點擊添加地址按鈕。在出現的網絡地址欄的協議下拉選項中選中 “TCP/IP”,主機文本框中輸入主機名稱或IP地址(如果主機即用作服務端也作為客戶端,輸入兩項之一均有效;如果主機作為服務端并需要通過網絡連 接,建議輸入IP地址),端口文本框中輸入數字端口,默認是1521,也可以自定義任意有效數字端口。配置好的監聽位置如下圖示:
選中窗口右側欄下拉選項中的“數據庫服務”,點擊添加數據庫按鈕。在出現的數據庫欄中輸入全局數據庫名,如myoracle。注意這里的全局數據庫名與數據 庫SID有所區別,全局數據庫名實際通過域名來控制在同一網段內數據庫全局命名的唯一性,就如Windows下的域名控制器,如這里可以輸入 myoracle.192.168.1.5。Oracle主目錄可以不填寫,輸入SID,如myoracle。完整的數據庫服務配置如下圖示:
保存以上配置,默認即可在Oracle安裝目錄下找到監聽配置文件 (Windows下如D:oracleora92networkadminlistener.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。至此,Oracle服務端監聽器配置已經完成。
2、?本地服務名配置(Tnsnames)
本地服務名是基于Oracle客戶端的網絡配置,所以,如果客戶端需要連接數據庫服務器進行操作,則需要配置該客戶端,其依附對象可以是任意一臺欲連接數據 庫服務器進行操作的pc機,也可以是數據庫服務器自身。如前面所介紹,可以利用Oracle自帶的圖形化管理工具Net Manager來完成Oracle客戶端的配置。選中如圖(一)中的服務命名,再點擊左上側“+”按鈕,彈出如下圖示對話框:
輸入Net服務名,如myoracle,點擊下一步,進入下圖示對話框:
選中TCP/IP(Internet協議),點擊下一步,如下圖示:
輸入主機名與端口號。注意這里的主機名與端口號必須與數據庫服務器端監聽器配置的主機名和端口號相同。點擊下一步,如下圖示:
選 中(Oracle8i或更高版本)服務名,輸入服務名。這里的服務名實際上就是數據庫服務器端監聽器配置中的全局數據庫名,前者與后者必須相同。連接類型 通常選專用服務器,這要視數據庫服務器的配置而定,如果配置的共享數據庫服務器,這里的連接類型就要選共享服務器,否則建議選專用服務器(關于專用服務器 的介紹請參閱相關文檔)。配置好后點擊下一步,如下圖示:
如果數據庫服務器端相關服務啟動了,可以點擊測試按鈕進行連接測試。Oracle默認是通過scott/tiger用戶進行測試連接,由于scott用戶是 Oracle自帶的示例用戶,對于正式的業務數據庫或專業測試數據庫可能沒有配置這個用戶,所以需要更改成有效的用戶登錄才可能測試成功。如果這里測試連 接不成功,也不要緊,先點完成按鈕結束配置。
回 到Oracle網絡管理器(Oracle Net Manager)主窗口,保存配置,默認即可在Oracle安裝目錄下找到本地服務名配置文件 (Windows下如D:oracleora92networkadmintnsnames.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。配置完成的本地服務名如下圖示:
樹形目錄下的服務命名可以通過編輯菜單里的重命名菜單更改成任意合法字符組成的服務名稱,注意服務名稱前不能有空格字符,否則可能無法連接數據庫服務器。
3、?連接數據庫服務器
(1)???啟動服務器端監聽器與數據庫服務
Linux/Unix下,啟動監聽器:
$ lsnrctl start
關閉監聽器:
$ lsnrctl stop
查看監聽狀態:
$ lsnrctl status
啟動數據庫:
$ sqlplus /nolog
SQLconn sys@myoracle as sysdba?? --這里的myoracle是前面配置的客戶端本地服務名
或
SQLconn / as sysdba
SQLstartup
Windows下,啟動監聽器:
C:lsnrctl start
啟動Oracle實例服務:
C:oradim ?a href="" class="none" title="cs" rel="external"cstartup –sid myoracle
關閉Oracle實例服務:
C:oradim –shutdown –sid myoracle
以上服務必須同時啟動,客戶端才能連接數據庫。由于默認配置的監聽器名稱是Listener,上述命令可以正常啟動監聽器,如果監聽器名稱是其它名稱,如aListener,則需要用下列方式才能啟動:
Linux/Unix下:
$ lsnrctl start aListener
Windows下:
C:lsnrctl start aListener
(2)???測試連接數據庫服務器
測試的方法多種多樣,可以在上面配置本地服務名時進行測試,也可以是第三方客戶端工具,如PL/SQL Developer,最方便的是用Oracle自帶的sqlplus工具,以下利用sqlplus進行測試:
C:sqlplus /nolog
SQLconn zgh@myoracle
已連接。
最簡單的是配置動態監聽:直接在命令行輸入netca,然后一直下一步,完成后就可以了,如下圖::
還有一種是配置靜態監聽:需要修改安裝目錄:product\11.2.0\dbhome_1\NETWORK\ADMIN下面的listener.ora文件,相對麻煩一點。
1、設置ORACLE_SID(實例名)的環境變量,如:"ORACLE_SID=orcl",可以通過"echo $ORACLE_SID"查看設置是否成功。
2、通過"sqlplus / as sysdba"登陸指定的Oracle實例orcl。
3、啟動數據庫"startup",然后啟動監聽"lsnrctl start"。
4、通過"sys/password@orcl as sysdba"可以登陸到數據庫實例orcl。也可以通過netca測試TNS是否成功。
打開Oracle Net Manager創建監聽
1
在開始菜單,選擇oracle,再選擇“配置和移值工具”,打開Oracle Net Manager。
2
在彈出的窗口上 選擇“監聽程序”,點擊左邊的“+”圖標,創建監聽。
3
在接下來的窗口上選擇監聽名稱,或者自己起一個監聽名稱,在點擊下方“確定”按鈕。
END
添加服務器數據庫IP地址配置監聽
1
點擊“添加地址”按鈕,填寫好服務器主機ip地址以及端口號并及時保存。
END
配置服務名稱
1
選擇“服務名稱”,創建一個服務名稱,最好跟目標主機數據庫服務名稱一致。
2
點擊下一步,選擇TC/IP選項,再單擊下一步。
3
填寫好服務器數據庫主機名,一般填寫IP地址就可以了,再填寫好端口:1521 。下一步的時候,填寫好服務名,跟SID一致就可以了。
4
測試是否可以連通,點擊“測試”按鈕,更改進入數據庫操作的賬戶跟密碼點擊測試。
5
測試連接成功如下圖,如果測試未成功,就按上面的步驟仔細檢查看看哪里出問題了。一般查詢服務器ip地址、端口、數據庫用戶名、密碼、防火墻等等地方是否有問題。
當我們建立了Oracle數據庫后,必須合理地配置監聽程序和網絡服務名后,客戶應用才能訪問我們的數據庫。所以服務器端必須配置監聽程序,而網絡服務名在客戶端跟服務器端都可以配置。看如下說明:
1。服務器端的監聽程序用于接收客戶端的連接請求。
在建立了Oracle數據庫之后,為了使得客戶應用可以訪問特定數據庫,必須要在監聽程序中追加該數據庫。一個監聽程序可以監聽多個Oracle數據庫,多個監聽程序也可以監聽同一個數據庫。但是監聽程序只能用于同一臺服務器上的Oracle數據庫。安裝了Oracle時,會自動建立默認的監聽程序LISTENER.一般只需要將需要使用的數據庫追加到這個監聽程序上就可以了。
監聽程序使用的默認端口為1521
保存了監聽程序配置之后,必須要重新啟動監聽程序才能生效。windows中可以在“服務”中重新啟動。
例如:假如我在10.150.27.45上裝了ORACLE服務器,端口是1521,為了讓其他客戶端應用(不管是本地的還是其他的)可以訪問我的名為TESTDB的數據庫,首先得在服務器上配置監聽器:進入NET MANAGER 新建一個端口,如命名為LISTENER,配置主機名:如10.150.27.45和端口1521,配置全局數據庫名:如TESTDB,然后保存就好了
2。客戶端需要配置網絡服務名,應用程序使用網絡服務名才能訪問Oracle數據庫, 一般使用數據庫名作為服務名。注意: 網絡協議要與監聽程序的一致(如TCP/IP)
例如:假如我在10.150.27.46上裝了ORACLE客戶端,進入NET MANAGER,新建一服務命名,如:TEST,然后配置你要連接的DB服務器名字和端口好,如:10.150.27.45, 1521,配置服務名,必須跟監聽端口的全局數據庫名一樣:如TESTDB,然后你可以通過輸入用戶名和密碼測試連接成不成功了
3。利用客戶端工具測試
在10.150.27.46上通過SQLPLUS連接10.150.27.45上的DB:TESTDB, 輸入用戶名密碼,HOST STRING輸入TEST,看連接是不是成功
1、打開cmd輸入netca。
2、選擇【本地net服務名配置】→下一步。
3、選擇【添加】→下一步。
4、在【服務名】中輸入你想要連接的服務器上的oracle服務的名字→下一步。
5、選擇【tcp】→下一步。
6、在【主機名】中輸入你想要連接的服務器ip,端口號不變→下一步。
7、選擇【進行測試】→下一步。(當然你也可以選擇不測試)
※1測試如果不通過,點擊【更改登錄】輸入一個肯定能登入的【用戶名】和【口令】→確定,出現【正在連接...測試成功。】表明測試成功。
※2測試不通過的話,點【上一步】確認你寫的【服務名】和【主機名】,確認無誤的情況下,確認你要連接的服務器oracle監聽服務已經打開。
8、在【net服務名中】輸入你想要使用的本地的服務名→下一步。
※就是【sqlplus
user/passwd
@本地服務名】。
9、選擇【否】→下一步。
10、出現【net服務配置完畢】字樣→下一步。
11、點擊【完成】完成服務配置。
12、在上面服務配置完成以后,在cmd中輸入如下命令即可遠程登錄oracle服務器:
sqlplus
user_name/password@本地服務名
一定記住,上面的本地服務名是你第8步寫的服務名。
13、如果sqlplus
能夠進入,PLSQL
Developer也就可以了。
---
以上,希望對你有所幫助。