近段時間很多網友提出監聽配置相關問題 客戶終端(Client)無法連接服務器端(Server) 本文現對監聽配置作一簡單介紹 并提出一些客戶終端無法連接服務器端的解決思路 愿對廣大網友與讀者有一些幫助 ? 一 監聽器(LISTENER) 監聽器是Oracle基于服務器端的一種網絡服務 主要用于監聽客戶端向數據庫服務器端提出的連接請求 既然是基于服務器端的服務 那么它也只存在于數據庫服務器端 進行監聽器的設置也是在數據庫服務器端完成的 ? 二 本地服務名(Tnsname) Oracle客戶端與服務器端的連接是通過客戶端發出連接請求 由服務器端監聽器對客戶端連接請求進行合法檢查 如果連接請求有效 則進行連接 否則拒絕該連接 本地服務名是Oracle客戶端網絡配置的一種 另外還有Oracle名字服務器(Oracle Names Server)等 Oracle常用的客戶端配置就是采用的本地服務名 本文中介紹的也主要是基于本地服務名的配置 ? 三 Oracle 網絡連接配置方法 配 置Oracle服務器端與客戶端都可以在其自帶的圖形化Oracle網絡管理器(Oracle Net Manager)里完成(強烈建議在這個圖形化的工具下完成Oracle服務端或客戶端的配置) 在Windows下 點擊 開始/程序/Oracle OraHome /Configuration and Migration Tools/Net Manager 啟動Oracle網絡管理器工具 在Linux/Unix下 利用netmgr命令來啟動圖形化Oracle網絡管理器 如 $ netmgr Windows下啟動Net Manager圖形窗口如下圖示 ? ????????????????????????????????????????????????????????????? 圖(一) ? ?Oracle監聽器配置(LISTENER) 如 圖(一)示 選中樹形目錄中監聽程序項 再點擊左上側 + 按鈕添加監聽程序 點擊監聽程序目錄 默認新加的監聽器名稱是LISTENER(該名稱也可以 由任意合法字符命名) 選中該名稱 選中窗口右側欄下拉選項中的 監聽位置 點擊添加地址按鈕 在出現的網絡地址欄的協議下拉選項中選中 TCP/IP 主機文本框中輸入主機名稱或IP地址(如果主機即用作服務端也作為客戶端 輸入兩項之一均有效 如果主機作為服務端并需要通過網絡連 接 建議輸入IP地址) 端口文本框中輸入數字端口 默認是 也可以自定義任意有效數字端口 配置好的監聽位置如下圖示 ? ???????????????????????????????????????????????????????????????圖(二) ? ? 選 中窗口右側欄下拉選項中的 數據庫服務 點擊添加數據庫按鈕 在出現的數據庫欄中輸入全局數據庫名 如myoracle 注意這里的全局數據庫名與數據 庫SID有所區別 全局數據庫名實際通過域名來控制在同一網段內數據庫全局命名的唯一性 就如Windows下的域名控制器 如這里可以輸入 myoracle Oracle主目錄可以不填寫 輸入SID 如myoracle 完整的數據庫服務配置如下圖示 ????????? 圖(三) ? 保 存以上配置 默認即可在Oracle安裝目錄下找到監聽配置文件 (Windows下如D:\oracle\ora \neork\admin\listener ora Linux/Unix下$ ORACLE_HOME/neork/admin/listerer ora) 至此 Oracle服務端監聽器配置已經完成 ? ?本地服務名配置(Tnsnames) 本 地服務名是基于Oracle客戶端的網絡配置 所以 如果客戶端需要連接數據庫服務器進行操作 則需要配置該客戶端 其依附對象可以是任意一臺欲連接數據 庫服務器進行操作的PC機 也可以是數據庫服務器自身 如前面所介紹 可以利用Oracle自帶的圖形化管理工具Net Manager來完成Oracle客戶端的配置 選中如圖(一)中的服務命名 再點擊左上側 + 按鈕 彈出如下圖示對話框 ? ????????????????????? 圖(四) ? 輸入Net服務名 如myoracle 點擊下一步 進入下圖示對話框 ? ????????????????圖(五) ? ? 選中TCP/IP(Internet協議) 點擊下一步 如下圖示 ????????????????圖(六) ? 輸入主機名與端口號 注意這里的主機名與端口號必須與數據庫服務器端監聽器配置的主機名和端口號相同 點擊下一步 如下圖示 ? ???????????????????? 圖(七) ? 選 中(Oracle i或更高版本)服務名 輸入服務名 這里的服務名實際上就是數據庫服務器端監聽器配置中的全局數據庫名 前者與后者必須相同 連接類型 通常選專用服務器 這要視數據庫服務器的配置而定 如果配置的共享數據庫服務器 這里的連接類型就要選共享服務器 否則建議選專用服務器(關于專用服務器 的介紹請參閱相關文檔) 配置好后點擊下一步 如下圖示 ? ????????????????圖(八) ? ? 如 果數據庫服務器端相關服務啟動了 可以點擊測試按鈕進行連接測試 Oracle默認是通過scott/tiger用戶進行測試連接 由于scott用戶是 Oracle自帶的示例用戶 對于正式的業務數據庫或專業測試數據庫可能沒有配置這個用戶 所以需要更改成有效的用戶登錄才可能測試成功 如果這里測試連 接不成功 也不要緊 先點完成按鈕結束配置 回 到Oracle網絡管理器(Oracle Net Manager)主窗口 保存配置 默認即可在Oracle安裝目錄下找到本地服務名配置文件 (Windows下如D:\oracle\ora \neork\admin\tnsnames ora Linux/Unix下$ ORACLE_HOME/neork/admin/ tnsnames ora) 配置完成的本地服務名如下圖示 ????????????????? 圖(九) ? 樹形目錄下的服務命名可以通過編輯菜單里的重命名菜單更改成任意合法字符組成的服務名稱 注意服務名稱前不能有空格字符 否則可能無法連接數據庫服務器 ? ?連接數據庫服務器 ( )?? 啟動服務器端監聽器與數據庫服務 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 –startup –sid myoracle?? 關閉Oracle實例服務 C:\oradim –shutdown –sid myoracle 以上服務必須同時啟動 客戶端才能連接數據庫 由于默認配置的監聽器名稱是Listener 上述命令可以正常啟動監聽器 如果監聽器名稱是其它名稱 如aListener 則需要用下列方式才能啟動 Linux/Unix下 $ lsnrctl start aListener Windows下 C:\lsnrctl start aListener ? ( )?? 測試連接數據庫服務器 測試的方法多種多樣 可以在上面配置本地服務名時進行測試 也可以是第三方客戶端工具 如PL/SQL Developer 最方便的是用Oracle自帶的sqlplus工具 以下利用sqlplus進行測試 C:\sqlplus /nolog SQLconn zgh@myoracle 已連接 ? ? 四 客戶端連接服務器端常見問題排除方法 要排除客戶端與服務器端的連接問題 首先檢查客戶端配置是否正確(客戶端配置必須與數據庫服務器端監聽配置一致) 再根據錯誤提示解決 下面列出幾種常見的連接問題 ?ORA : TNS: 沒有監聽器 顯而易見 服務器端的監聽器沒有啟動 另外檢查客戶端IP地址或端口填寫是否正確 啟動監聽器 $ lsnrctl start 或 C:\lsnrctl start ?ORA : TNS: 監聽程序無法啟動專用服務器進程 對于Windows而言 沒有啟動Oracle實例服務 啟動實例服務 C:\oradim –startup sid myoracle ?ORA : TNS: 操作超時 出現這個問題的原因很多 但主要跟網絡有關 解決這個問題 首先檢查客戶端與服務端的網絡是否暢通 如果網絡連通 則檢查兩端的防火墻是否阻擋了連接 ?ORA : TNS: 無法處理服務名 檢 查輸入的服務名與配置的服務名是否一致 另外注意生成的本地服務名文件(Windows下如D:\oracle\ora \neork\admin \tnsnames ora Linux/Unix下$ORACLE_HOME/neork/admin/tnsnames ora)里每項服務的首 行服務名稱前不能有空格 ?ORA : TNS: 監聽進程不能解析在連接描述符中給出的 SERVICE_NAME 打開Net Manager 選中服務名稱 檢查服務標識欄里的服務名輸入是否正確 該服務名必須與服務器端監聽器配置的全局數據庫名一致 ?Windows下啟動監聽服務提示找不到路徑 用 命令或在服務窗口中啟動監聽提示找不到路徑 或監聽服務啟動異常 打開注冊表 進入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome TNSListener項 查看ImagePath字符串項是否存在 如果沒 有 設定值為D:\oracle\ora \BIN\TNSLSNR 不同的安裝路徑設定值做相應的更改 這種方法同樣適用于Oracle實例服務 同 上 找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE項 查看ImagePath字符串項是否存在 如果沒有 則新建 設定值為d:\oracle\ora \ binORACLE EXE MYORACLE 以上是Oracle客戶端連接服務器端常見的一些問題 當然不能囊括所有的連接異常 解決問題的關鍵在于方法與思路 而不是每種問題都有固定的答案 lishixinzhi/Article/program/Oracle/201311/17900
萍鄉網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。成都創新互聯公司公司2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。
何為一個instance配置多個監聽,并且實現Client Load Balancing和Client Load Balancing。
打開NETCA,配置兩個監聽器。
LISENTER,默認監聽器,一路next,就配置完畢, 監聽端口1521。
配置LISENTER2,注意監聽端口改為1522,其它和LISENTER一致。
這個時候,LISENTER已經可以使用了。
但是LISENTER2還是不行,因為Oracle只會為第一個默認的監聽注冊服務。
在$ORACLE_HOME/NETWORK/ADMIN,編輯lisenter.ora文件,如下:
紅色字體為需要增加的內容
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = WWJ)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(GLOBAL_DBNAME = WWJ)
)
)
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = valen)(PORT = 1522))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST = valen)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
需要解釋的是,SID_LIST_lisenter name 這里的lisenter name要和LISTENER名稱一致。
SID_DESC則注冊要提供服務的數據庫實例名。這樣LISTENER2 才能夠提供服務。
否則會報TNS-錯誤。
測試過程,配置local tns name如下:
1522 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = wwj)
)
)
1521 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wwj)
)
)
local =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = wwj)
)
)
1522和1521分別對應兩個監聽器,local稍后再解釋:
測試:
sql conn [url=mailto:wwj/wwj@1521]wwj/wwj@1521
已連接。
sql conn [url=mailto:wwj/wwj@1522]wwj/wwj@1522
已連接。
OK,再看local,
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1522))
這里的意思是,該命名對應了兩個監聽端口,如果一個Crash,會立刻切換到另外一個。
并且如果多個連接,會隨機的分配監聽。
測試
sql conn [url=mailto:wwj/wwj@local]wwj/wwj@local
已連接。
STOP LISENTER,再次連接,這個時候,連接比第一次慢了1秒鐘左右
sql conn [url=mailto:wwj/wwj@local]wwj/wwj@local
已連接。
成功,這時連接上了LISTENER2
方法/步驟
1
Oracle監聽器配置(LISTENER)
如 圖(一)示,選中樹形目錄中監聽程序項,再點擊左上側“+”按鈕添加監聽程序,點擊監聽程序目錄,默認新加的監聽器名稱是LISTENER(該名稱也可以 由任意合法字符命名)。選中該名稱,選中窗口右側欄下拉選項中的“監聽位置”,點擊添加地址按鈕。在出現的網絡地址欄的協議下拉選項中選中 “TCP/IP”,主機文本框中輸入主機名稱或IP地址(如果主機即用作服務端也作為客戶端,輸入兩項之一均有效;如果主機作為服務端并需要通過網絡連 接,建議輸入IP地址),端口文本框中輸入數字端口,默認是1521,也可以自定義任意有效數字端口。配置好的監聽位置如下圖示:
2
選 中窗口右側欄下拉選項中的“數據庫服務”,點擊添加數據庫按鈕。在出現的數據庫欄中輸入全局數據庫名,如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服務端監聽器配置已經完成。
本地服務名配置(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)。配置完成的本地服務名如下圖示:
樹形目錄下的服務命名可以通過編輯菜單里的重命名菜單更改成任意合法字符組成的服務名稱,注意服務名稱前不能有空格字符,否則可能無法連接數據庫服務器。
連接數據庫服務器
(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
已連接。
客戶端連接服務器端常見問題排除方法
要排除客戶端與服務器端的連接問題,首先檢查客戶端配置是否正確(客戶端配置必須與數據庫服務器端監聽配置一致),再根據錯誤提示解決。下面列出幾種常見的連接問題:
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客戶端連接服務器端常見的一些問題,當然不能囊括所有的連接異常。解決問題的關鍵在于方法與思路,而不是每種問題都有固定的答案。
1、首先打開任務管理器、或者右擊桌面下方的任務欄選擇q啟動任務管理器。在任務管理器上點擊上方的服務、再點擊右下方的服務、將oracle服務調成手動模式。
2、其次可以看見紅色箭頭所指向的兩個服務、分別是oracle服務和oracle監聽器、將oracle服務調成手動模式選中監聽器、右擊選擇屬性將oracle服務調成手動模式。
3、最后擊下拉框、選擇手動、保存將oracle服務調成手動模式完成后、開機速度就會明顯加快了將oracle服務調成手動模式同上將oracle服務設置為手動即可。
網站欄目:oracle監聽怎么設置 監聽Oracle
文章網址:http://m.kartarina.com/article46/hggphg.html
成都網站建設公司_創新互聯,為您提供網站策劃、自適應網站、網站內鏈、網站建設、網站設計公司、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯