oracle安全可靠的復制
2024-08-29 13:37:08
供稿:網(wǎng)友
 
             
  使用現(xiàn)成的Oracle技術(shù)來建立分布式系統(tǒng)。
  
  復制包括使一個分布式系統(tǒng)中跨多個數(shù)據(jù)庫的一些或所有應(yīng)用程序數(shù)據(jù)保持同步。在本欄目中,我將解釋為什么你需要使用復制功能,并描述一些可以用來實現(xiàn)復制功能的Oracle技術(shù)。
  
                                                                                              你需要設(shè)計一個具備復制功能的系統(tǒng)有以下幾個原因:
  
  遠程數(shù)據(jù)訪問需要很大的網(wǎng)絡(luò)帶寬;
  
  網(wǎng)絡(luò)延遲會導致你的應(yīng)用程序運行得非常慢;
  
  一個單一站點的故障或崩潰會導致令人無法接受的服務(wù)失效;
  
  需要對特定數(shù)據(jù)的本地所有權(quán)和控制。
  
  數(shù)據(jù)和性能
  
  在對復制進行評估時需要考慮兩個網(wǎng)絡(luò)因素:網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)延遲。
  
  網(wǎng)絡(luò)帶寬幾乎不是問題,除非你運行在無線網(wǎng)絡(luò)上或你的WAN(廣域網(wǎng))連接是通過撥號或ISDN來實現(xiàn)的。在這種情況下,復制數(shù)據(jù)可能要比每次需要時再訪問更有效。
  
  網(wǎng)絡(luò)延遲對于像HTTP這樣的Web協(xié)議也不是什么大問題,因為每個用戶請求的網(wǎng)絡(luò)往返次數(shù)被控制在最小,并且網(wǎng)絡(luò)請求一般都是并行處理的。然而,當你使用JDBC訪問數(shù)據(jù)時,底層數(shù)據(jù)訪問協(xié)議一般要求很多次的網(wǎng)絡(luò)往返來滿足一個單一請求。
  
  高可用性和安全性
  
  除了聯(lián)網(wǎng)因素,復制還可以幫助你滿足很多目標,如保證重要服務(wù)的正常運行以及維持對數(shù)據(jù)的自主控制等。
  
  數(shù)據(jù)的同步拷貝可以使數(shù)據(jù)恢復到最新的版本,這對于傳統(tǒng)備份是不可能實現(xiàn)的。在即使服務(wù)短期中斷也令人無法接受的情況下,單向復制可以保證一個備用數(shù)據(jù)庫在接到通知后馬上接管主數(shù)據(jù)庫的工作。
  
  通常有一些法規(guī)、與安全性相關(guān)或其他現(xiàn)實的原因要求維護對共享數(shù)據(jù)的本地控制。例如,假設(shè)兩家政府機構(gòu)需要共享特定數(shù)據(jù),但法律禁止將其完整的數(shù)據(jù)集進行合并。復制可以選擇性地雙向發(fā)布數(shù)據(jù)變更。
  
  另外,復制還可以被設(shè)置為單向(主-從)、雙向(多個主節(jié)點)或n向(即三個或更多個節(jié)點保持同步)。一個減少n向同步的固有復雜性的策略是不答應(yīng)對數(shù)據(jù)進行更新。你的系統(tǒng)可以將數(shù)據(jù)分為不同的"版本",并為每個新版本建立一個新的全局標識符。
  
  Oracle和復制
  
  有幾個Oracle技術(shù)對于設(shè)計數(shù)據(jù)復制功能非凡有用。選擇使用哪個技術(shù)完全取決于你的特定應(yīng)用程序的要求。
  
  一般有兩種形式的復制,即通常所說的數(shù)據(jù)復制和程序復制。
  
  當使用數(shù)據(jù)復制時,對數(shù)據(jù)庫對象(如表)所做的改動將被捕捉并保存在本地,然后被應(yīng)用到每個遠程地點。高級復制(Advanced Replication)是一個實施了這種復制的Oracle數(shù)據(jù)庫特性。由于你需要一個數(shù)據(jù)庫之間的Oracle Net Services (SQL*Net)連接,因此高級復制通常不適合在WAN(廣域網(wǎng))上使用。然而,高級復制不要求程序代碼,并且可以傳播數(shù)據(jù)變更和模式的變更。
  
  程序復制使用程序代碼來捕捉和傳播已提交的事務(wù),而不是數(shù)據(jù)變化本身。例如,將采購訂單上運輸費用的變更作為一個事務(wù)表示出來可能比將組成采購訂單的數(shù)據(jù)庫表的所有變化都表示出來要簡潔得多。Oracle高級排隊(AQ)是Oracle數(shù)據(jù)庫的一個特性,它提供了消息排隊功能并且可以將事務(wù)傳送到遠程系統(tǒng)。AQ可以處理各種不同的有效負載類型,就像高級復制特性一樣,AQ可以在Oracle Net Services上傳播消息。但AQ還可以以xml格式對消息進行編碼,通過HTTP和SMTP來傳播這些消息,這使其成為在WAN上使用的一個更好的選擇。
  
  假如你需要與非Oracle系統(tǒng)共享數(shù)據(jù),那么Oracle9i應(yīng)用服務(wù)器(Oracle9iAS)集成可能是個好的選擇。它提供了一個圍繞基于Oracle AQ的消息中心而設(shè)計的應(yīng)用集成框架。Oracle9iAS集成解決方案提供了不同系統(tǒng)之間進行連接所需的基于內(nèi)容的路由、交叉引用和域值映射特性。和往常一樣,我只是對這一主題作了膚淺的探討,因此要想了解更豐富的其他信息,請查看Oracle文檔。