qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          在防火墻上開放Oracle服務端口的方法

           Oracle服務端口方面會有很多的問題,下面就將為您介紹在防火墻上開放Oracle服務端口的方法,希望對您學習Oracle服務端口方面能有所幫助。

            要使Oracle客戶端能正常連接到設置有防火墻的安裝在windows上的Oracle服務器,單開放一個1521或自定義的監聽端口是不夠的。

            我們有的時候需要映射端口遠程去訪問Oracle數據庫,這里有個防火墻的問題,在unix上沒有問題,但是在win 平臺上卻無法正確訪問,下面的可以解決這個問題,:

            近來由于工作需要,在Windows XP平臺上安裝了Oracle9i數據庫作為測試之用,一切正常。但當客戶機連接服務器時卻總是超時,我首先想到了防火墻,當我打開1521端口時,連接操作仍然失敗。我又懷疑網絡有問題,用telnet server_ip:1521嘗試,連接被接受,說明1521端口已經被打開。

            沒有辦法,查詢Oracle資料后才明白,network listener只起一個中介作用,當客戶連接它時,它根據配置尋找到相應的數據庫實例進程,然后spawned一個新的數據庫連接,這個連接端口由network listener傳遞給客戶機,此后客戶機就不再和打交道了,即使listener停止了工作。這個新的連接端口是不可預知的,因而會被防火墻阻止。

            Windows Socket2 規范有一個新的特性,就是Shared Socket,所謂共享套接字是指一個進程共享另一個進程的套接字(詳見MSDN相關參考)。如果讓network listener與數據庫服務進程共享套接字,那么連接端口就不會變化。

            如何設置Shared Socket?

            在注冊表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0上新建一個字符串值:USE_SHARED_SOCKET=true。如果安裝了多個目錄,則每個類似的目錄都要設置:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx (x目錄編號)

            設置后要求重新啟動實例(只重啟listener發現沒有效果)

            Oracle客戶端連接服務器,首先去找1521監聽端口,服務器的1521監聽端口再向server process進程發出請求,并返回一個隨機端口,返回給客戶端,客戶端再來連接這個端口。 這樣就給服務器上的防火墻設置帶來了麻煩,這個端口是隨機的,如何開放?

            windows平臺上的這個問題成了一大難題,很多論壇都有人問,但很少有人能解決。unix平臺不用擔心,系統自動會解決這個問題. Matalink上提供了三種解決辦法,實際上USE_SHARED_SOCKET是最有效最方便的。但經過無數次實現,仍然沒有成功,最后終于發現是Oracle 8.1.7的bug 需要打補丁,升級到Oracle 8.1.7.1.2

            需要在MTS模式下(共享模式) Oracle默認是專用模式。

            經試驗發現,如果不在init文件中設參數的話,Oracle仍然會要求一個隨機端口和1521端口來共同通訊,只是這個隨機端口,并不隨客戶端會話和登錄的變化而變化,在沒有重啟服務器時,是固定的。(試驗發現,在專用模式下,每次連接,oracle服務器會按+1方式,提供一個非1521的端口。)所以,還需要在init.ora文件的最后加上一條參數:

            mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)"

            設置后要求重新啟動實例。

          posted on 2011-11-29 11:08 順其自然EVO 閱讀(307) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鹿泉市| 江山市| 张家川| 伊吾县| 本溪市| 昭苏县| 临沭县| 巴中市| 肃宁县| 灯塔市| 苍梧县| 商洛市| 太原市| 灵璧县| 河南省| 邻水| 西畴县| 阿鲁科尔沁旗| 洛隆县| 贵阳市| 宜宾县| 陆川县| 赤峰市| 手游| 大姚县| 芦溪县| 普洱| 麟游县| 南陵县| 同心县| 咸宁市| 沧州市| 盐津县| 绥滨县| 天等县| 祁连县| 昌图县| 东辽县| 邳州市| 民权县| 镇远县|