ORACLE開啟放火牆無法訪問的解決辦法

2021-08-24 19:11:46 字數 2528 閱讀 1976

在資料庫伺服器上設定。

oracle客戶端連線伺服器,首先去找1521監聽埠,伺服器的1521監聽埠再向server process程序發出請求,

並返回乙個隨機埠,返回給客戶端,客戶端再來連線這個埠。 這樣就給伺服器上的防火牆設定帶來了麻煩,

這個埠是隨機的,如何開放?

windows 平台上的這個問題成了一大難題,很多論壇都有人問,但很少有人能解決。

unix平台不用擔心,系統自動會解決這個問題.

matalink上提供了三種解決辦法,實際上use_shared_socket 是最有效最方便的。

local_machinesoftwareoraclehomex

where x is your desired homedir.

但經過無數次實驗,仍然沒有成功,最後終於發現是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)"

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

use_shared_socket = true

- oracle 8.1.6 for nt/2k hkey_local_machinesoftwareoraclehome<#> (# is your desired homedir)

- oracle 8.1.7.0.0 for nt/2k doesn't work in oracle 8.1.7.0.0 for nt/2k

- oracle 8.1.7.1.2 for nt/2k hkey_local_machinesoftwareoracle

環境:win2000,oracle 9.2.0.1

方法一:在windows2000的登錄檔中,hkey_local_machinesoftwareoraclehome0下加入字串值:

use_shared_socket=true,即可

方法二:1、首先將資料庫例項改為shared server模式

2、以sysdba登入sqlplus,通過sqlplus生成系統當前的引數設定檔案pfile:create pfile='d:init.ora' from spfile;

3、修改d:init.ora檔案,在其中增加(用editplus編輯):*.service_names='your service name'和*.dispatchers='(address=(protocol=tcp)(host=localhost)(port=1521)(dispatchers=1)'

4、生成新的spfile:create spfile from pfile='d:init.ora';

5、重啟動資料庫。

6、在防火牆中開放1521埠。

方法三:在資料庫端(也可以是另外的機器,但是cman的機器必須和資料庫都在防火牆的後面)安裝了cman的前提下,啟動cman,然後開放防火牆端的1630埠(看cman開的是什麼埠啦),最後在客戶端的tnsnames.ora檔案中新增:

cmantest = (description = (address_list = (address = <- first address is to cman (protocol=tcp) (host=hostname or ip of cman) (port=1610) ) (address= <- second address is to listener (protocol=tcp) (host=hostname or ip of listener) (port=1521) ) ) (connect_data = (sid = sidname)) (source_route = yes)

安裝完windows版的oracle 10g 後,開啟了windows 2003自帶的防火牆,發現在本機可以訪問oracle資料庫,

但在遠端不能連線,一直都在報連線超時。關閉防火牆後,可以用遠端連線oracle 10g 資料庫。但開啟防火牆後,又不能連線,說明問題出在防火牆上,防火牆開啟tcp 1521埠,仍然不能連線資料庫。解決問題的辦法如下:

1.如果是oracle 8i ,修改登錄檔hklmsoftwareoracle,增加乙個字串值use_shared_socket = true。

2.如果是非oracle 9i,開啟%oracle_home%binoracle.key檔案,按裡面的路徑hklm增加乙個字串值use_shared_socket = true。

3.增加以後重啟機子讓登錄檔生效。

如果是linux下的oracle,只要在防火牆中開啟tcp 1521埠就可以連線了。

ORACLE開啟放火牆無法訪問的解決辦法

在資料庫伺服器上設定。oracle客戶端連線伺服器,首先去找1521監聽埠,伺服器的1521監聽埠再向server process程序發出請求,並返回乙個隨機埠,返回給客戶端,客戶端再來連線這個埠。這樣就給伺服器上的防火牆設定帶來了麻煩,這個埠是隨機的,如何開放?windows 平台上的這個問題成了...

iis無法訪問oracle的問題

iis 無法訪問 oracle 但是vs2008可以訪問 把我鬱悶了好久 又裝了oracle伺服器的 在網上查了又裝了oracle的客戶端 暫時可以訪問了但是oracle的監聽無法啟動了 比較鬱悶的事情 反覆裝了oracle好幾遍 鬱悶了幾天 最後終於找到了問題 這個原來是oracle的bug or...

vmware web access無法訪問

現象 esx的web訪問預設是關閉的,網上很多文章都說使用chkconfig vmware webaccess on來讓服務自動開啟,不過這樣操作之後重啟機器,web訪問還是還會出503無法訪問錯誤,esx不知道為什麼會自動把vmware webaccess 給禁用掉。解決方法 經過無數次嘗試之後發...