1、Oracle如何配置監聽
一、監聽器(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圖形窗口如下圖示:
Oracle
1、 Oracle監聽器配置(LISTENER)
如 圖(一)示,選中樹形目錄中監聽程序項,再點擊左上側「+」按鈕添加監聽程序,點擊監聽程序目錄,默認新加的監聽器名稱是LISTENER(該名稱也可以 由任意合法字元命名)。選中該名稱,選中窗口右側欄下拉選項中的「監聽位置」,點擊添加地址按鈕。在出現的網路地址欄的協議下拉選項中選中 「TCP/IP」,主機文本框中輸入主機名稱或IP地址(如果主機即用作服務端也作為客戶端,輸入兩項之一均有效;如果主機作為服務端並需要通過網路連 接,建議輸入IP地址),埠文本框中輸入數字埠,默認是1521,也可以自定義任意有效數字埠。配置好的監聽位置如下圖示:
Oracle
選 中窗口右側欄下拉選項中的「資料庫服務」,點擊添加資料庫按鈕。在出現的資料庫欄中輸入全局資料庫名,如myoracle。注意這里的全局資料庫名與數據 庫SID有所區別,全局資料庫名實際通過域名來控制在同一網段內資料庫全局命名的唯一性,就如Windows下的域名控制器,如這里可以輸入 myoracle.192.168.1.5。Oracle主目錄可以不填寫,輸入SID,如myoracle。完整的資料庫服務配置如下圖示:
Oracle
保 存以上配置,默認即可在Oracle安裝目錄下找到監聽配置文件 (Windows下如D:.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。至此,Oracle服務端監聽器配置已經完成。
2、 本地服務名配置(Tnsnames)
本 地服務名是基於Oracle客戶端的網路配置,所以,如果客戶端需要連接資料庫伺服器進行操作,則需要配置該客戶端,其依附對象可以是任意一台欲連接數據 庫伺服器進行操作的pc機,也可以是資料庫伺服器自身。如前面所介紹,可以利用Oracle自帶的圖形化管理工具Net Manager來完成Oracle客戶端的配置。選中如圖(一)中的服務命名,再點擊左上側「+」按鈕,彈出如下圖示對話框:
Oracle
輸入Net服務名,如myoracle,點擊下一步,進入下圖示對話框:
Oracle
選中TCP/IP(Internet協議),點擊下一步,如下圖示:
Oracle
輸入主機名與埠號。注意這里的主機名與埠號必須與資料庫伺服器端監聽器配置的主機名和埠號相同。點擊下一步,如下圖示:
Oracle
選 中(Oracle8i或更高版本)服務名,輸入服務名。這里的服務名實際上就是資料庫伺服器端監聽器配置中的全局資料庫名,前者與後者必須相同。連接類型 通常選專用伺服器,這要視資料庫伺服器的配置而定,如果配置的共享資料庫伺服器,這里的連接類型就要選共享伺服器,否則建議選專用伺服器(關於專用伺服器 的介紹請參閱相關文檔)。配置好後點擊下一步,如下圖示:
Oracle
如 果資料庫伺服器端相關服務啟動了,可以點擊測試按鈕進行連接測試。Oracle默認是通過scott/tiger用戶進行測試連接,由於scott用戶是 Oracle自帶的示例用戶,對於正式的業務資料庫或專業測試資料庫可能沒有配置這個用戶,所以需要更改成有效的用戶登錄才可能測試成功。如果這里測試連 接不成功,也不要緊,先點完成按鈕結束配置。
回 到Oracle網路管理器(Oracle Net Manager)主窗口,保存配置,默認即可在Oracle安裝目錄下找到本地服務名配置文件 (Windows下如D:.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。配置完成的本地服務名如下圖示:
Oracle
樹形目錄下的服務命名可以通過編輯菜單里的重命名菜單更改成任意合法字元組成的服務名稱,注意服務名稱前不能有空格字元,否則可能無法連接資料庫伺服器。
3、 連接資料庫伺服器
(1) 啟動伺服器端監聽器與資料庫服務
Linux/Unix下,啟動監聽器:
$ lsnrctl start
關閉監聽器:
$ lsnrctl stop
查看監聽狀態:
$ lsnrctl status
啟動資料庫:
$ sqlplus /nolog
SQL>conn sys@myoracle as sysdba --這里的myoracle是前面配置的客戶端本地服務名
或
SQL>conn / as sysdba
SQL>startup
Windows下,啟動監聽器:
C:lsnrctl start
啟動Oracle實例服務:
C:oradim ?a href="http://game.pchome.net/pcgame" 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
SQL>conn zgh@myoracle
已連接。
四、客戶端連接伺服器端常見問題排除方法
要排除客戶端與伺服器端的連接問題,首先檢查客戶端配置是否正確(客戶端配置必須與資料庫伺服器端監聽配置一致),再根據錯誤提示解決。下面列出幾種常見的連接問題:
1、 ORA-12541: TNS: 沒有監聽器
顯而易見,伺服器端的監聽器沒有啟動,另外檢查客戶端IP地址或埠填寫是否正確。啟動監聽器:
$ lsnrctl start
或
C:lsnrctl start
2、 ORA-12500: TNS: 監聽程序無法啟動專用伺服器進程
對於Windows而言,沒有啟動Oracle實例服務。啟動實例服務:
C:oradim –startup -sid myoracle
3、 ORA-12535: TNS: 操作超時
出現這個問題的原因很多,但主要跟網路有關。解決這個問題,首先檢查客戶端與服務端的網路是否暢通,如果網路連通,則檢查兩端的防火牆是否阻擋了連接。
4、 ORA-12154: TNS: 無法處理服務名
檢 查輸入的服務名與配置的服務名是否一致。另外注意生成的本地服務名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每項服務的首 行服務名稱前不能有空格。
5、 ORA-12514: TNS: 監聽進程不能解析在連接描述符中給出的 SERVICE_NAME
打開Net Manager,選中服務名稱,檢查服務標識欄里的服務名輸入是否正確。該服務名必須與伺服器端監聽器配置的全局資料庫名一致。
6、 Windows下啟動監聽服務提示找不到路徑
用 命令或在服務窗口中啟動監聽提示找不到路徑,或監聽服務啟動異常。打開注冊表,進入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener項,查看ImagePath字元串項是否存在,如果沒 有,設定值為D:oracleora92BINTNSLSNR,不同的安裝路徑設定值做相應的更改。這種方法同樣適用於Oracle實例服務,同 上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE項,查看ImagePath字元串項是否存在,如果沒有,則新建,設定值為d:oracleora92 binORACLE.EXE MYORACLE。
2、如何為遠程oracle伺服器配置監聽
首先登陸到遠程,使用oracle用戶登陸
然後修改%ORACLE_HOME/network/admin/LISTENER.ORA文件
修改為如下內容(按照遠程伺服器配置)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/proct/10g)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = testserver3)(PORT = 1521))
)
)
其中,LISTENER是伺服器中監聽進程的名稱;
PROTOCOL 表明所使用的網路協議,若是TCP/IP協議,則該值必須為「TCP」;
HOST 表示伺服器的網路地址,為伺服器的IP或者網內的機器名;
PORT 指TCP/IP協議在主機中所佔用埠號,ORACLE預設使用1521,是在安裝ORACLE資料庫時定義的,在安裝時可以改變,安裝完成後不能改變此值;
SID_NAME 指伺服器上運行的ORACLE資料庫名稱,該值應與.bash_profile文件中的環境變數ORACLE_SID相同(一般情況下此文件為預設值「PLSExtProc」);
ORACLE_HOME 是指ORACLE資料庫的主目錄,該值也應與. bash_profile文件中的環境變數ORACLE_HOME相同。
希望能幫到您!
3、如何啟動oracle監聽
1、首先我們打開電腦桌面,在開始菜單,找到oracle 客戶端程序,在「配置和移植內」中找到「Net Manager」,點容擊進入。
2、單擊展開「監聽程序」,點擊「+」增加監聽。
3、然後我們新增名為「sample」的監聽程序。
4、然後我們給監聽「sample」添加地址。
5、然後我們單擊「文件」菜單---->「保存網路配置」這樣就完成了監聽程序的添加。
4、oracle 監聽 是在伺服器端才需要嗎
在本地連接本地的資料庫,可以不需要監聽
將監聽配置文件里的localhost改為主機名或者地址
重新啟動監聽lsnrctl reload
將lsnrctl status 結果貼上來
5、如何查看和開啟oracle監聽和服務
1、檢查oracle監聽服務運行狀態,輸入lsnrctl status命令來查看,看到提示信息TNS:no listener,表示監聽沒有啟動,
2、監聽沒有啟動,則需要輸入lsnrctl start啟動監聽服務,當看到提示信息"The command completed successfully",則表示啟動成功,
3、以system用戶身份登陸oracle,sqlplus /nolog,conn as sysdba,
4、提示Connected to an idle instance。則表示連接成功,下面開始啟動oracle實例服務,輸入startup命令,當看到如圖的提示信息,則啟動完成,就可以正常使用oracle服務了,
6、oracle資料庫怎麼配置監聽
方法/步驟
1
Oracle監聽器配置(LISTENER)
如 圖(一)示,選中樹形目錄中監聽程序項,再點擊左上側「+」按鈕添加監聽程序,點擊監聽程序目錄,默認新加的監聽器名稱是LISTENER(該名稱也可以 由任意合法字元命名)。選中該名稱,選中窗口右側欄下拉選項中的「監聽位置」,點擊添加地址按鈕。在出現的網路地址欄的協議下拉選項中選中 「TCP/IP」,主機文本框中輸入主機名稱或IP地址(如果主機即用作服務端也作為客戶端,輸入兩項之一均有效;如果主機作為服務端並需要通過網路連 接,建議輸入IP地址),埠文本框中輸入數字埠,默認是1521,也可以自定義任意有效數字埠。配置好的監聽位置如下圖示:
2
選 中窗口右側欄下拉選項中的「資料庫服務」,點擊添加資料庫按鈕。在出現的資料庫欄中輸入全局資料庫名,如myoracle。注意這里的全局資料庫名與數據 庫SID有所區別,全局資料庫名實際通過域名來控制在同一網段內資料庫全局命名的唯一性,就如Windows下的域名控制器,如這里可以輸入 myoracle.192.168.1.5。Oracle主目錄可以不填寫,輸入SID,如myoracle。完整的資料庫服務配置如下圖示:
保 存以上配置,默認即可在Oracle安裝目錄下找到監聽配置文件 (Windows下如D:.ora,Linux/Unix下$ ORACLE_HOME/network/admin/listerer.ora)。至此,Oracle服務端監聽器配置已經完成。
本地服務名配置(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:.ora,Linux/Unix下$ ORACLE_HOME/network/admin/ tnsnames.ora)。配置完成的本地服務名如下圖示:
樹形目錄下的服務命名可以通過編輯菜單里的重命名菜單更改成任意合法字元組成的服務名稱,注意服務名稱前不能有空格字元,否則可能無法連接資料庫伺服器。
連接資料庫伺服器
(1) 啟動伺服器端監聽器與資料庫服務
Linux/Unix下,啟動監聽器:
$ lsnrctl start
關閉監聽器:
$ lsnrctl stop
查看監聽狀態:
$ lsnrctl status
啟動資料庫:
$ sqlplus /nolog
SQL>conn sys@myoracle as sysdba --這里的myoracle是前面配置的客戶端本地服務名
或
SQL>conn / as sysdba
SQL>startup
Windows下,啟動監聽器:
C:lsnrctl start
啟動Oracle實例服務:
C:oradim ?a href="http://game.pchome.net/pcgame" 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
SQL>conn zgh@myoracle
已連接。
客戶端連接伺服器端常見問題排除方法
要排除客戶端與伺服器端的連接問題,首先檢查客戶端配置是否正確(客戶端配置必須與資料庫伺服器端監聽配置一致),再根據錯誤提示解決。下面列出幾種常見的連接問題:
1、 ORA-12541: TNS: 沒有監聽器
顯而易見,伺服器端的監聽器沒有啟動,另外檢查客戶端IP地址或埠填寫是否正確。啟動監聽器:
$ lsnrctl start
或
C:lsnrctl start
2、 ORA-12500: TNS: 監聽程序無法啟動專用伺服器進程
對於Windows而言,沒有啟動Oracle實例服務。啟動實例服務:
C:oradim –startup -sid myoracle
3、 ORA-12535: TNS: 操作超時
出現這個問題的原因很多,但主要跟網路有關。解決這個問題,首先檢查客戶端與服務端的網路是否暢通,如果網路連通,則檢查兩端的防火牆是否阻擋了連接。
4、 ORA-12154: TNS: 無法處理服務名
檢 查輸入的服務名與配置的服務名是否一致。另外注意生成的本地服務名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每項服務的首 行服務名稱前不能有空格。
5、 ORA-12514: TNS: 監聽進程不能解析在連接描述符中給出的 SERVICE_NAME
打開Net Manager,選中服務名稱,檢查服務標識欄里的服務名輸入是否正確。該服務名必須與伺服器端監聽器配置的全局資料庫名一致。
6、 Windows下啟動監聽服務提示找不到路徑
用 命令或在服務窗口中啟動監聽提示找不到路徑,或監聽服務啟動異常。打開注冊表,進入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener項,查看ImagePath字元串項是否存在,如果沒 有,設定值為D:oracleora92BINTNSLSNR,不同的安裝路徑設定值做相應的更改。這種方法同樣適用於Oracle實例服務,同 上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE項,查看ImagePath字元串項是否存在,如果沒有,則新建,設定值為d:oracleora92 binORACLE.EXE MYORACLE。
以上是Oracle客戶端連接伺服器端常見的一些問題,當然不能囊括所有的連接異常。解決問題的關鍵在於方法與思路,而不是每種問題都有固定的答案。
7、怎樣啟動oracle監聽伺服器
查看監聽狀態
lsnrctl status
啟動監聽
lsnrctl start
關閉監聽
lsnrctl stop
8、怎樣檢測oracle資料庫的監聽器是否配置成功?
根據提示進行配置一般都沒有問題,要檢驗成功,可以使用PL/SQL,如果能連接成功就說明ok了
9、oracle用命令怎麼重新建立監聽伺服器
1在開始菜單,選擇oracle,再選擇「配置和移值工具」,打開Oracle Net Manager。
2
在彈出的窗口上 選擇「監聽程序」,點擊左邊的「+」圖標,創建監聽。
3
在接下來的窗口上選擇監聽名稱,或者自己起一個監聽名稱,在點擊下方「確定」按鈕。
END
添加伺服器資料庫IP地址配置監聽
1
點擊「添加地址」按鈕,填寫好伺服器主機ip地址以及埠號並及時保存。
END
配置服務名稱
選擇「服務名稱」,創建一個服務名稱,最好跟目標主機資料庫服務名稱一致。
點擊下一步,選擇TC/IP選項,再單擊下一步。
填寫好伺服器資料庫主機名,一般填寫IP地址就可以了,再填寫好埠:1521 。下一步的時候,填寫好服務名,跟SID一致就可以了。
測試是否可以連通,點擊「測試」按鈕,更改進入資料庫操作的賬戶跟密碼點擊測試。
5
測試連接成功如下圖,如果測試未成功,就按上面的步驟仔細檢查看看哪裡出問題了。一般查詢伺服器ip地址、埠、資料庫用戶名、密碼、防火牆等等地方是否有問題。
10、如何配置Oracle資料庫監聽
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也就可以了。
---
以上,希望對你有所幫助。