如何通過Oracle連接管理器控制數據庫連接

爲了更好的控制Oracle數據庫的連接,Oracle提出了一個連接管理器的解決方案。連接管理器是Oracle開發的一箇中間件解決方案,它提供了許多可縮放性的特性。Oralce連接管理器又是一個多用途的聯網解決方案,可用於提升可伸縮性、提供多協議連通性以及安全網絡訪問控制方案。具體的來說Oracle連接管理器可以實現如下幾個功能。

如何通過Oracle連接管理器控制數據庫連接

  功能一:多路複用。

Oracle連接管理器通過充當一個連接集中器以在單個網絡連接內集中多個客戶端數據庫會話,以支持量用戶連接到一個服務器。也就是說,連接管理器可以分組許多客戶連接並把它們作爲一個單獨的多路複用網絡連接發送給Oracle服務器,這就降低了服務器必須管理的網絡連接總數量。如果現在有三個用戶通過客戶端要連接到Oracle數據庫據服務器中,則這三個用戶可以先連接到 “Oracle連接管理器”上。然後連接管理器會對客戶端的請求進行處理,並把它們合成一個請求轉發給數據庫服務器。此時數據庫服務器就會認爲這三個用戶的請求是來自於同一個客戶端。從而可以支持量客戶端連接到一個數據庫服務器中;同時可以降低服務器管理的網絡連接總數量。另外這種處理機制還可以降低數據庫服務器的系統資源開銷,提高數據庫的性能。因爲Oracle連接管理器可以通過將到服務器的網絡連接數量降至道最低來減少操作系統的資源要求,可以避免數據庫網絡應用中的瓶頸,數據庫系統的可伸縮性將得到極的改善。

故當企業的客戶端數量比較多的話,筆者建議數據庫管理員在網絡中部署一個連接管理器。客戶端通過連接管理器來連接到Oracle數據庫中。

  功能二:支持防火牆,提高數據庫安全。

在Oralce連接控制器中體現了跟防火牆很好的合作性。如通過Oralcle連接管理器的Proxy功能,防火牆廠商能夠在Oracle環境中提供部署真正分佈式互聯網和內聯網應用程序所必須的支持。以前在沒有這個功能的時候,防火牆就成爲了Oracle數據庫網絡應用的重障礙之一。

如筆者以前在部署Oracle數據庫應用的時候,就出現過很多防火牆與Oracle數據庫不兼容的案例。如一次筆者給防火牆應用了一個補丁程序。在打補丁之前,數據庫連接還很正常的。可是當打了補丁之後,數據庫連接就出現了問題。如客戶端與Oralce數據庫服務器之間會出現一些間歇性的斷開現象,雖然說筆者懷疑是這個補丁程序出現了問題,但是沒有證據防火牆廠商也會買我的帳。筆者花了好幾天時間對網絡與數據庫通信進行跟蹤;而且還去調查其他企業是否也有類似的情況。皇天不負有心人,終於讓筆者發現了問題所在。然後筆者就跟防火牆廠商進行聯繫,協商具體的解決方案。在彼此雙方的共同努力下,這個問題終於得到了圓滿的解決。

雖然現在Oracle數據庫能夠提供對防火牆的支持。如支持IP過濾防火牆,以監視IP網絡信息包的傳播,並過濾出喲阿麼不發自指定計算機組的信息包。而且還可以通過基於代理的防火牆阻止來自防火牆外部的信息直接流入到企業網絡中。這種防火牆就好像是企業的一個看門人,會對用戶的請求進行審查並只發送適當的信息到企業網絡。可見防火牆是企業網絡中一個重要的安全機制,也是保護Oracle數據庫安全的一個重要手段。但是類上面這種防火牆與 Oracle數據庫之間出現的衝突經常會遇到,而且有時候很難查找問題的原因。而現在通過Oracle連接管理器則可以很好的避免這種情況,可以地減少因爲防火牆問題而給數據庫連接帶來的不良反應。

  功能三:網絡訪問控制。

在連接控制器中,還可以使用IP地址限制訪問權的規則來配置。如IP地址可以創建這個基於規則的配置來接受或者拒絕客戶的.連接請求。另外客戶端的連接還可以按起始點、目標服務器和Oracle服務器來限制。具體來說,可以通過三種類型來限制客戶端的訪問,分別爲通過協議類型限制客戶端連接、通過IP地址限制客戶端連接與通過服務名限制客戶端連接。不過最常用的還是通過IP地址來限制客戶端的連接。前不久筆者剛好完成過類似的一個項目。

這家企業是一家集團型企業,規模比較。由於需要上一個集團財務管理系統,故需要配置Oracle數據庫。由於這個財務管理軟件系統主要是歸財務部門使用,其他部門用不着。爲了提高這個數據庫的安全,企業就提出了一個要求,他們只允許財務人員可以訪問這個數據庫。筆者調查了企業的網絡部署情況,發現企業對於財務部門比較重視。如還特意通過虛擬局域網的形式限制其他部門對財務部門網絡的訪問(通過固定IP地址來實現)。瞭解到了這個情況之後,筆者就心中有解決方案了。筆者最後跟企業確認後,在Oracle數據庫服務器之前部署了一個Oracle連接管理器,通過這個連接管理器配置實現只有特定的 IP地址纔可以連接到Oracle服務器中。而其他非財務部門的用戶(Ip地址不是財務部門的),不能夠連接到這臺Oracle數據庫服務器中。

通過類似的方法來提高Oracle數據庫的安全還有很多。如企業可能現現在有多臺Oracle數據庫服務器。如有的是ERP系統的後臺數據庫; 而有的是財務管理軟件的後臺數據庫。現在企業財務部門可以訪問這兩臺數據庫服務器;而財務部門以外的員工只能夠訪問ERP系統的數據庫服務器。此時,也可以通過連接控制起來實現訪問控制。可見Oracle連接控制器提供了很多訪問控制的手段,可以提高Oralce數據庫的安全性。

  功能四:多協議的支持。

連接管理器的多協議支持允許客戶端使用不同網絡協議來與服務器進行通信。連接管理器在其中充當一個翻譯器的角色,來爲客戶端與服務器端進行雙向協議轉換。其實確切的說,客戶端可以通過多個協議連接到Oracle連接管理器。而連接管理器與數據庫服務器的連接則往往只有一種協議。連接管理器在把請求發送給服務器之前,已經對連接進行了翻譯,翻譯成爲了數據庫服務器可以認同的協議。然後連接管理器在接受到數據庫服務器的反饋之後,就會把再對協議進行轉換,轉換爲客戶端可以認同的協議,並與客戶端進行通信。也就是說,此時客戶段可能就認爲連接管理器就是數據庫服務器。

現在有三個客戶端,採用了不同的網絡協議。當客戶端向數據庫連接管理器發送連接請求時,連接管理器如果發現有可以採用的不是 Oracle數據庫服務器所接受的網絡協議,則會先對網絡協議進行轉換。然後再把轉換過的請求發送給數據庫服務器。可以Oracle連接管理器允許使用不同網絡協議的客戶與服務器進行通信。這在比較複雜的環境環境中非常的有用。

故連接管理器可以在訪問控制、防火牆支持、多路複用、多協議支持等多個方面提供比較出色的支持。爲此筆者在給企業部署Oracle應用的時候,如果發現企業的網絡比較複雜,同時又採用了防火牆等安全控制手段的話,那麼筆者都會建議企業採用連接管理器來連接數據庫服務器。如此的話,後續由於網絡環境的調整而給數據庫通信造成的負面影響就會少的多。