萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> Oracle中安全可靠的復制問題的說明

Oracle中安全可靠的復制問題的說明

使用現成的Oracle技術來建立分布式系統。

復制包括使一個分布式系統中跨多個數據庫的一些或所有應用程序數據保持同步。在本欄目中,我將解釋為什麼你需要使用復制功能,並描述一些可以用來實現復制功能的Oracle技術。

你需要設計一個具備復制功能的系統有以下幾個原因:

遠程數據訪問需要很大的網絡帶寬;

網絡延遲會導致你的應用程序運行得非常慢;

一個單一站點的故障或崩潰會導致令人無法接受的服務失效;

需要對特定數據的本地所有權和控制。

數據和性能

在對復制進行評估時需要考慮兩個網絡因素:網絡帶寬和網絡延遲。

網絡帶寬幾乎不是問題,除非你運行在無線網絡上或你的WAN(廣域網)連接是通過撥號或ISDN來實現的。在這種情況下,復制數據可能要比每次需要時再訪問更有效。

網絡延遲對於像HTTP這樣的Web協議也不是什麼大問題,因為每個用戶請求的網絡往返次數被控制在最小,並且網絡請求一般都是並行處理的。然而,當你使用JDBC訪問數據時,底層數據訪問協議一般要求很多次的網絡往返來滿足一個單一請求。

高可用性和安全性

除了聯網因素,復制還可以幫助你滿足很多目標,如保證重要服務的正常運行以及維持對數據的自主控制等。

數據的同步拷貝可以使數據恢復到最新的版本,這對於傳統備份是不可能實現的。在即使服務短期中斷也令人無法接受的情況下,單向復制可以保證一個備用數據庫在接到通知後馬上接管主數據庫的工作。

通常有一些法規、與安全性相關或其他現實的原因要求維護對共享數據的本地控制。例如,假設兩家政府機構需要共享特定數據,但法律禁止將其完整的數據集進行合並。復制可以選擇性地雙向發布數據變更。

另外,復制還可以被設置為單向(主-從)、雙向(多個主節點)或n向(即三個或更多個節點保持同步)。一個減少n向同步的固有復雜性的策略是不允許對數據進行更新。你的系統可以將數據分為不同的"版本",並為每個新版本建立一個新的全局標識符。

Oracle和復制

有幾個Oracle技術對於設計數據復制功能特別有用。選擇使用哪個技術完全取決於你的特定應用程序的要求。

一般有兩種形式的復制,即通常所說的數據復制和程序復制。

當使用數據復制時,對數據庫對象(如表)所做的改動將被捕獲並保存在本地,然後被應用到每個遠程地點。高級復制(Advanced Replication)是一個實施了這種復制的Oracle數據庫特性。由於你需要一個數據庫之間的Oracle Net Services (SQL*Net)連接,因此高級復制通常不適合在WAN(廣域網)上使用。然而,高級復制不要求程序代碼,並且可以傳播數據變更和模式的變更。

程序復制使用程序代碼來捕獲和傳播已提交的事務,而不是數據變化本身。例如,將采購訂單上運輸費用的變更作為一個事務表示出來可能比將組成采購訂單的數據庫表的所有變化都表示出來要簡潔得多。Oracle高級排隊(AQ)是Oracle數據庫的一個特性,它提供了消息排隊功能並且可以將事務傳送到遠程系統。AQ可以處理各種不同的有效負載類型,就像高級復制特性一樣,AQ可以在Oracle Net Services上傳播消息。但AQ還可以以XML格式對消息進行編碼,通過HTTP和SMTP來傳播這些消息,這使其成為在WAN上使用的一個更好的選擇。

如果你需要與非Oracle系統共享數據,那麼Oracle9i應用服務器(Oracle9iAS)集成可能是個好的選擇。它提供了一個圍繞基於Oracle AQ的消息中心而設計的應用集成框架。Oracle9iAS集成解決方案提供了不同系統之間進行連接所需的基於內容的路由、交叉引用和域值映射特性。和往常一樣,我只是對這一主題作了膚淺的探討,因此要想了解更豐富的其他信息,請查看Oracle文檔。

copyright © 萬盛學電腦網 all rights reserved