Windows上Oracle開放防火牆連接埠問題[轉載]

來源:互聯網
上載者:User

在防火牆上開放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)"

這樣才真正實現只用一個連接埠,穿過防火牆。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.