Oracle 開放埠 通過埠對映無法連線

2021-09-01 14:14:25 字數 1693 閱讀 4425

**:

oracle 9i 安裝在win2003上,win2003只開放埠1521埠,則遠端telnet 1521埠能通,但是資料庫連線不上。原因如下:

oracle客戶端連線伺服器,首先去找1521監聽埠,伺服器的1521監聽埠再向server process程序發出請求,並返回乙個隨機埠,返回給客戶端,客戶端再來連線這個埠。

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

方法一:

在windows2003的登錄檔中,hkey_local_machine\software\oracle\home0\下加入字串值:

use_shared_socket=true,在伺服器上開啟tcp「1521」埠,重啟orcale伺服器即可!

方法二:

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 ,修改登錄檔hklm\software\oracle,增加乙個字串值use_shared_socket = true。

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

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

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

Linux開放埠和關閉埠

埠檢視指令 netstat ntlp 開放埠27017 firewall cmd permanent zone public add port 27017 tcp 如果報錯firewalld is not running,是因為防火牆已經被關閉。需要開啟防火牆,然後再操作開啟埠 開啟防火牆 syst...

linux 開放 埠 命令

開發不連續埠 包括單個 iptables a input p tcp m multiport dport 21,20 j accept 其他都關閉 iptables a input p tcp j reject reject with tcp reset 開放連續埠 iptables a rh fi...

Linux iptables開放特定埠

如果系統已安裝則調過安裝步驟 查詢安裝包 yum list grep iptables 安裝iptables yum install iptables services 重啟防火牆使配置檔案生效 systemctl restart iptables.service 設定iptables防火牆為開機啟...