Oracle服務(wù)穿越防火墻

作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專(zhuān)欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net

環(huán)境 :數(shù)據(jù)庫(kù)服務(wù)器在VPN網(wǎng)內(nèi),操作系統(tǒng)為W2k3 Server SP2,VPN使用了防火墻,數(shù)據(jù)庫(kù)為Oracle10G,專(zhuān)用服務(wù)器模式。

 

問(wèn)題 :在VPN外不能連接Oracle,服務(wù)器上的防火墻已經(jīng)關(guān)閉,VPN防火墻打開(kāi)了1521監(jiān)聽(tīng)端口。

 

原因 :監(jiān)聽(tīng)器只是負(fù)責(zé)監(jiān)聽(tīng)請(qǐng)求,默認(rèn)使用1521端口。客戶端請(qǐng)求連接通過(guò)監(jiān)聽(tīng)器找到數(shù)據(jù)庫(kù)服務(wù)后,建立一個(gè)新的連接,使用的是另外一個(gè)動(dòng)態(tài)端口,而且不可預(yù)知。雖然服務(wù)器關(guān)閉了防火墻,但是VPN防火墻還是攔截了客戶端的連接。

 

解決辦法 :查看資料,最后使用USE_SHARED_SOCKET設(shè)置。在注冊(cè)表HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1下添加一個(gè)字符串值USE_SHARED_SOCKET=true。重啟數(shù)據(jù)庫(kù)服務(wù),連接OK。

 

參考 :http://bbs.51cto.com/thread-606943-1.html;http://www.computer-book-authors.org/aud_450.htm