Oracle 開放埠

hljhrbsjf發表於2011-05-23
Oracle 開放埠
2011-02-12 10:39

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

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

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


方法一:

在windows2003的登錄檔中,hkey_local_machinesoftwareoraclehome0下加入字串值:
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 = ta = (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.增加以後重啟機子讓登錄檔生效。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/631872/viewspace-1050248/,如需轉載,請註明出處,否則將追究法律責任。

相關文章