IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → 在防火墻上開(kāi)放Oracle服務(wù)端口的方法

在防火墻上開(kāi)放Oracle服務(wù)端口的方法

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  Oracle服務(wù)端口方面會(huì)有很多的問(wèn)題,下面就將為您介紹在防火墻上開(kāi)放Oracle服務(wù)端口的方法,希望對(duì)您學(xué)習(xí)Oracle服務(wù)端口方面能有所幫助。

  要使Oracle客戶端能正常連接到設(shè)置有防火墻的安裝在windows上的Oracle服務(wù)器,單開(kāi)放一個(gè)1521或自定義的監(jiān)聽(tīng)端口是不夠的。

  我們有的時(shí)候需要映射端口遠(yuǎn)程去訪問(wèn)Oracle數(shù)據(jù)庫(kù),這里有個(gè)防火墻的問(wèn)題,在unix上沒(méi)有問(wèn)題,但是在win 平臺(tái)上卻無(wú)法正確訪問(wèn),下面的可以解決這個(gè)問(wèn)題,:

  近來(lái)由于工作需要,在Windows XP平臺(tái)上安裝了Oracle9i數(shù)據(jù)庫(kù)作為測(cè)試之用,一切正常。但當(dāng)客戶機(jī)連接服務(wù)器時(shí)卻總是超時(shí),我首先想到了防火墻,當(dāng)我打開(kāi)1521端口時(shí),連接操作仍然失敗。我又懷疑網(wǎng)絡(luò)有問(wèn)題,用telnet server_ip:1521嘗試,連接被接受,說(shuō)明1521端口已經(jīng)被打開(kāi)。

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

  Windows Socket2 規(guī)范有一個(gè)新的特性,就是Shared Socket,所謂共享套接字是指一個(gè)進(jìn)程共享另一個(gè)進(jìn)程的套接字(詳見(jiàn)MSDN相關(guān)參考)。如果讓network listener與數(shù)據(jù)庫(kù)服務(wù)進(jìn)程共享套接字,那么連接端口就不會(huì)變化。

  如何設(shè)置Shared Socket?

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

  設(shè)置后要求重新啟動(dòng)實(shí)例(只重啟listener發(fā)現(xiàn)沒(méi)有效果)

  Oracle客戶端連接服務(wù)器,首先去找1521監(jiān)聽(tīng)端口,服務(wù)器的1521監(jiān)聽(tīng)端口再向server process進(jìn)程發(fā)出請(qǐng)求,并返回一個(gè)隨機(jī)端口,返回給客戶端,客戶端再來(lái)連接這個(gè)端口。 這樣就給服務(wù)器上的防火墻設(shè)置帶來(lái)了麻煩,這個(gè)端口是隨機(jī)的,如何開(kāi)放?

  windows平臺(tái)上的這個(gè)問(wèn)題成了一大難題,很多論壇都有人問(wèn),但很少有人能解決。unix平臺(tái)不用擔(dān)心,系統(tǒng)自動(dòng)會(huì)解決這個(gè)問(wèn)題. Matalink上提供了三種解決辦法,實(shí)際上USE_SHARED_SOCKET是最有效最方便的。但經(jīng)過(guò)無(wú)數(shù)次實(shí)現(xiàn),仍然沒(méi)有成功,最后終于發(fā)現(xiàn)是Oracle 8.1.7的bug 需要打補(bǔ)丁,升級(jí)到Oracle 8.1.7.1.2

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

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

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

  設(shè)置后要求重新啟動(dòng)實(shí)例。

關(guān)鍵詞標(biāo)簽:Oracle,服務(wù)端口

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法