国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Ora、cle與防火墻設置

2019-11-02 15:16:49
字體:
來源:轉載
供稿:網友

   Oracle與防火墻設置

  要訪問防火墻后的windows oracle數據庫,僅僅

好看的雷人圖片[www.62-6.com/1/leirentupian/]
通過簡單的打開固定TCP端口的方式是不行的。

  這個問題的根本原因是windows oracle數據庫的BT設計(unix/linux無此問題)。

  一、Oracle的網絡通信端口原理

  oracle數據庫的網絡訪問采用了一個很BT的工作模式,其大概流程如下:

  1)oracle server上的oracle net listener進程持續監聽一個固定的TCP端口(缺省是1521);

  2)client向server上的net listener端口發起連接請求;

  3)listenr收到client的請求之后,建立與client的連接,并通知server新建一個數據庫連接的服務進程(以下簡稱P),該進程會隨機選擇一個沒有被使用的TCP端口并綁定,然后將端口號通知listener;

  4)listenr將P綁定的端口號轉發給client;

  5)client收到P的端口號后,終止與listener的連接,然后通過P的綁定端口直接連接P;

  到第5步,連接才最終完成,之后client就可以訪問數據庫了。

  從上面的工作流程可以知道,在這種工作模式下,client實際最終連接的oracle server端口是隨機的。

  所以根本無法在防火墻上預先設定固定的TCP端口來使oracle server可以被訪問。

  據說oracle這么做也是不得已的,因為早期windows nt的TCP/IP部分有bug,直接使用公用端口連接會有問題,所以oracle才搞出這么個天才的設計。

  不過,NT4SP3之后不就沒這個bug了嗎,為啥到oracle 11g了還在用這個BT模式呢? 當然啦,現在網絡安全性問題這么嚴重,如果真的無法使用防火墻,windows版的oracle數據庫豈不是要賣不出去了嗎?

  oracle公司當然不會那么白癡,從oracle 8i開始,windows版的oracle也可以使用正常的工作模式了,只不過默認仍是使用BT工作模式罷了。

  只有Windows平臺上的9i及以下版本的Oracle才會有這個問題。Oracle在Linux以及Unix平臺下,多個進程間可以對端口進行復用,Oracle Server Process仍然使用的是跟監聽進程一個端口(1521),客戶端只連接了一次,并沒有進行第二次連接,與上面描述的流程相比已經發生了變化。

  在Windows平臺上,10g及以上版本的數據庫,也同樣利用端口復用,避免了這樣的問題。實際上10g就是默認USE_SHARED_SOCKET為TRUE。

  二、在防火墻中設置程序例外

在Oracle的BT模式下,其實可通過在防火墻中設置Oracle程序例外來穿越防火墻。

Oracle與防火墻設置    電腦高手

  三、在防火墻中設置端口例外

  在windows注冊表的 (HOMEDIR是你機器上安裝的oracle數據庫的instance名稱)中添加一個字符串鍵值,名稱為USE_SHARED_SOCKET,值為TRUE(注意大小寫),然后重啟oracle instance或直接重啟windows就OK了。

  這樣,你只要再在防火墻上打開oracle的監聽端口(缺省為1521),就可以在防火墻外訪問oracle了!

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青岛市| 阜宁县| 当阳市| 岳池县| 项城市| 泸定县| 稷山县| 西吉县| 和林格尔县| 石家庄市| 贡嘎县| 广灵县| 阿坝| 扬州市| 武义县| 宜宾市| 德州市| 巨鹿县| 子长县| 凭祥市| 普兰店市| 宁城县| 龙川县| 泰来县| 张掖市| 兰考县| 巴林右旗| 大埔县| 瓦房店市| 庄浪县| 宽甸| 太和县| 徐州市| 诸暨市| 班玛县| 桐柏县| 泗阳县| 泰和县| 临西县| 池州市| 靖安县|