熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle Streams

2013-11-13 15:29:35  來源: Oracle 

  執行概要
  一般地說信息共享意味著用戶和應用通過利用各種特殊目的的技術從他們的數據庫中把信息取出來新的商業模式需要更統一的方案 人們可以自動發現相關信息並可以使之共享它應具有充分的靈活性以適應商業需求的變化同時最大程度地降低對特定目的技術的依賴我們所需要的是能夠滿足所有信息共享需求的一體化解決方案
  在Oraclei 數據庫第二版中Oracle引進了一個全新的一體化信息共享功能Oracle 流(Oracle Streams)Oracle流通過一個單一的解決方案滿足了大部分的數據移動事物處理傳播以及事件管理的需要它為建立和運轉分布式企業和應用數據倉庫和高可用性解決方案提供了必要的能力開發人員和數據庫管理員可以同時使用Oracle流的所有能力如果他們的需求發生了變化他們可以簡單地啟用Oracle流的一個新功能而不必放棄現有的功能
  簡介
  任何數據庫管理系統的一個重要功能是在多個數據庫和應用間共享信息的功能傳統地說這意味著用戶和應用將利用各種特定的技術從數據庫中將信息取出來今天新的功效和商業模式需要更全面和自動的解決方案這種方案必須能自動地決定相關的信息並把這些信息共享於需要它的群體之間它也必須是一種能夠適應商業需求的變化同時最大程度地減低對單一目的解決方案依賴的通用解決方案這種積極地信息共享包括在數據庫中捕獲和管理事件和事物處理包括但不限於DML然後將這些事件傳遞到其他數據庫和應用信息共享對數據和應用集成復制裝載數據倉庫高可用性數據保護以及其他應用是非常重要的但是信息共享選擇的多樣性可能極為豐富一些解決方案是專門用於不同目的的它們可能不能與其他的選擇相互兼容IT部門發現沒有一種解決方案可以滿足所有的需求並且擔心當他們的需求產生變化時會受到他們所采用的解決方案的限制他們希望能有一種解決方案可以滿足信息共享的所有要求
  
  Oraclei 數據庫提供了大量的信息共享特性包括高級隊列高級復制變更數據同期捕獲和數據衛士這些特性提供了具有針對性的交錯能力並且基於不同的底層技術在Oraclei 數據庫第二版中Oracle 提供了一套全面的基於信息集成共享特性的Oracle 流Oracle 流可以使整個應用提升到一個新的層次最突出的是Oracle 流可以通過一個單一的解決方案滿足大部分數據移動事物處理傳遞以及事件管理的要求當需求產生了變化Oracle 流將能適應並滿足新的需求
  
  Oracle流概要
  Oracle流可以使一個數據庫中的數據事物處理和事件在本數據庫內部傳遞也可以使它們從一個數據庫傳遞到另一個數據庫中流可以將被發布的信息傳遞到訂閱它的目的地因此這是一個全新的特性與傳統解決方案相比它在捕獲和管理事件與其他數據庫和應用共享事件等方面提供了更卓越的功能性它可以使IT部門打破各解決方案之間交互使用的循環Oracle流為建立和運轉分布式企業和應用數據倉庫和高可用性解決方案提供了必要的能力開發人員和數據庫管理員可以同時使用Oracle流的所有能力如果他們的要求發生了變化他們可以簡單地啟用Oracle流的一個新功能而不必放棄現有的功能
  
  Oracle流提供了一系列的元素通過利用這些元素用戶可以控制哪些信息可以放入流中流應如何流動或通過哪些途徑從一個節點流向另一個節點當流中的事件流向每個節點時它們發生了哪些變化以及流如何終止等問題通過指定作用於流上的元素的配置用戶可以強調出特定的要求為了簡化Oracle流的部署Oracle提供了為特定市場所特別配置的應用
   
  Oracle流的架構是非常靈活的如上圖所示流包含三個基本元素
   捕獲
   存儲
   消費
  捕獲
  Oracle流支持捕獲事件(數據庫變化和應用生成的信息)並存入存儲區域這些事件可以通過兩種方式捕獲對於隱式捕獲服務器在一個源數據庫中捕獲DML和DDL顯式捕獲則允許應用明確地生成事件並將其放入存儲區域
  
  Oracle流的顯著特征之一是支持基於日志的變更捕獲從重做日志文件中直接捕獲變更可以使源系統的間接費減低到最少基於日志的捕獲使得表的變更可以被存入日志文件從而可以保證當發生損害或媒體故障時的可恢復性Oraclei數據庫可以讀分析和解釋重復操作信息這些信息當中可能包括數據庫活動歷史的信息Oraclei 數據庫第二版可以挖掘信息並將變更數據傳遞到捕獲過程數據庫提供了輔助的日志記錄功能它可以將附加信息如主鍵列記錄到重做流中以有助於這些信息的傳遞捕獲處理首先捕獲從重做日志中提取出來的變更數據將其格式化為邏輯變更記錄(LCR)的格式然後將其放入存儲區中以備進一步地使用捕獲處理可以基於定義好的規則智能化地過濾LCR從而可僅使所需對象的變更被捕獲
  Oracle流除支持對存檔日志文件的挖掘還支持對在線重做日志的熱挖掘在熱挖掘的情況下重流在變更數據被寫入的同時就被熱挖掘從而減少了捕獲的延遲
  用戶應用可以顯式地將信息表現事件加入到存儲區域這些信息可以作為LCR進行格式化這將使得它們可以被應用引擎所消費它們也可以被格式化為可被其他用戶應用通過利用顯式出列所消費的格式用戶應用也可以將信息加入到隊列表中它可以被應用處理所捕獲並作為LCR在存儲區域中發布
  存儲
  事件一旦被捕獲就將被放入存儲區域存儲區域是一個隊列它可為存儲和管理捕獲事件提供服務數據庫表的變更將被格式化為LCR然後被存儲於存儲區直到有訂閱者消費它們LCR存儲提供了一個安全的保留場所並能完成對LCR數據的審核和跟蹤
  
  訂閱者檢驗存儲區域的內容以決定他們是否對表現該事件的信息有興趣訂閱者可以是一個用戶應用通常是位於另一個系統中的其他存儲區域或缺省應用處理訂閱者可以Oracle 流有選擇的評價一系列的規則以決定這些信息是否滿足訂閱時所制定的基准如果滿足基准這些信息將被訂閱者消費
  
  如果訂閱者是用戶應用該應用將把信息從存儲區域提取出來以便於消費該信息如果訂閱者是另一個存儲區域該信息將被傳遞到該存儲區域如果訂閱者是一個缺省應用處理它也將被提取出來被該應用處理所消費
  
  傳遞
  存儲區域中的事件也可被傳遞到相同數據庫中的其他存儲區域或其他遠程數據庫中的存儲區域為了簡化網絡路徑和減少WAN通訊量事件並不需要被發送到所有數據庫和應用中去相反它們可以被直接傳遞到位於一個或多個系統中的存儲區域中直到到達訂閱它們的系統並不是所有的需要訂閱事件這樣可以為特定系統決定利用哪些事件提高靈活性一個單一的存儲區域可以存儲來源於多個數據庫的事件這樣可以簡化安裝和配置
  
  轉換
  轉換是指一個對象在參與捕獲和應用過程中形式的變化或它所保有的數據的變化等轉換可能包括在特定站點的某個表的特定列中數據類型的變化只在一個站點的某個表中追加一列或在特定站點的某個表中包含一個數據子集
  
  轉換可以用PL/SQL 功能表示它輸入源數據類型並返回該對象的目標數據類型轉換可以在信息入列時被指定即當信息被插入到存儲區域之前就被轉換為正確的類型它也可被指定於傳遞這將有助於數據子集向遠程站點的傳遞最後它也可被指定於出列或本地應用這將有助於按照指定站點的方式格式化信息
  
  消費
  存儲區域的信息可以被應用引擎所消費它們所表示的變化將被應用於數據庫或它們將被應用所消費Oracle流包括一個靈活的應用引擎它允許使用一個標准的或定制的應用功能因此數據在需要時可以被轉換對於顯式出列的支持允許應用開發人員使用Oracle流通知應用數據的變化也可以充分利用Oracle流的變化捕獲和傳遞能力
  
  缺省應用
  缺省應用引擎使用DML變化DDL變化和用戶指定的LCR如果目標數據庫是Oracle數據庫應用引擎將在Oracle數據庫所在系統的本地運行
  
  如果目標行已被改變但沒有包含所期待的數據值缺省應用引擎將會檢測出這種沖突如果檢測出沖突將會啟動一個解決程序
  
  應用引擎由一個應用協調器一個獲取受控和一個或多個應用受控組成獲取受控負責組合由Oracle生成的LCR的事務處理應用協調器執行事務處理從屬性和DML層級從屬性計劃以捕獲最大化並行性
  
  由於應用協調器和應用受控一般位於相同的Oracle事例中因此在從屬性計劃中不會有網絡往復產生應用引擎可以激活用戶指定功能以采用變化
  
  用戶定義的功能應用
  應用引擎可以將LCR傳遞到用戶定義的功能中去它為處理LCR提供了極大的靈活性一個典型的用戶定義功能是在把LCR所表示的數據應用到本地表之前預先對數據進行再格式化例如映射事務處理的字段格式對象名和列名等用戶定義功能也可被用於執行行子集或用來更新在源數據庫中沒有出現的對象
  
  顯式出列
  用戶應用可以使LCR或其他信息從接收的存儲區域顯式出列這可以使用戶應用更有效地訪問流存儲區域中的數據流可以向注冊的PL/SQL或OCI功能發送通知為應用提供一個可選方案以獲取新的信息當然為使存儲區域中新訂閱的信息可有效利用應用仍然可以捕獲甚至等待
  
  網絡指向
  管理員在指定流的路徑上具有很大的靈活性通過使用存儲區域隊列的基於規則的發行和訂閱能力他們可以選擇哪些變化將被傳遞到每一個目的數據庫中並能指定達到目的地的路徑信息例如一個事件可以通過一個並沒有實際應用該事件的集線器數據庫來傳遞
  
  區分起源於不同站點的變化是非常重要的
From:http://tw.wingwit.com/Article/program/Oracle/201311/16808.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.