執行概要
一般地說
信息共享意味著用戶和應用通過利用各種特殊目的的技術從他們的數據庫中把信息取出來
新的商業模式需要更統一的方案
人們可以自動發現相關信息並可以使之共享
它應具有充分的靈活性以適應商業需求的變化
同時最大程度地降低對特定目的技術的依賴
我們所需要的是能夠滿足所有信息共享需求的一體化解決方案
在Oracle
i 數據庫第二版中
Oracle引進了一個全新的一體化信息共享功能
Oracle 流(Oracle Streams)
Oracle流通過一個單一的解決方案滿足了大部分的數據移動
事物處理傳播以及事件管理的需要
它為建立和運轉分布式企業和應用
數據倉庫
和高可用性解決方案提供了必要的能力
開發人員和數據庫管理員可以同時使用Oracle流的所有能力
如果他們的需求發生了變化
他們可以簡單地啟用Oracle流的一個新功能
而不必放棄現有的功能
簡介
任何數據庫管理系統的一個重要功能是在多個數據庫和應用間共享信息的功能
傳統地說
這意味著用戶和應用將利用各種特定的技術從數據庫中將信息取出來
今天
新的功效和商業模式需要更全面和自動的解決方案
這種方案必須能自動地決定相關的信息
並把這些信息共享於需要它的群體之間
它也必須是一種能夠適應商業需求的變化
同時最大程度地減低對單一目的解決方案依賴的通用解決方案
這種積極地信息共享包括在數據庫中捕獲和管理事件和事物處理
包括但不限於DML
然後將這些事件傳遞到其他數據庫和應用
信息共享對數據和應用集成
復制
裝載數據倉庫
高可用性
數據保護以及其他應用是非常重要的
但是
信息共享選擇的多樣性可能極為豐富
一些解決方案是專門用於不同目的的
它們可能不能與其他的選擇相互兼容
IT部門發現沒有一種解決方案可以滿足所有的需求
並且擔心當他們的需求產生變化時會受到他們所采用的解決方案的限制
他們希望能有一種解決方案可以滿足信息共享的所有要求
Oracle
i 數據庫提供了大量的信息共享特性
包括高級隊列
高級復制
變更數據同期捕獲和數據衛士
這些特性提供了具有針對性的交錯能力
並且基於不同的底層技術
在Oracle
i 數據庫第二版中
Oracle 提供了一套全面的基於信息集成共享特性的Oracle 流
Oracle 流可以使整個應用提升到一個新的層次
最突出的是
Oracle 流可以通過一個單一的解決方案滿足大部分數據移動
事物處理傳遞以及事件管理的要求
當需求產生了變化
Oracle 流將能適應並滿足新的需求
Oracle流概要
Oracle流可以使一個數據庫中的數據
事物處理和事件在本數據庫內部傳遞
也可以使它們從一個數據庫傳遞到另一個數據庫中
流可以將被發布的信息傳遞到訂閱它的目的地
因此這是一個全新的特性
與傳統解決方案相比
它在捕獲和管理事件
與其他數據庫和應用共享事件等方面提供了更卓越的功能性
它可以使IT部門打破各解決方案之間交互使用的循環
Oracle流為建立和運轉分布式企業和應用
數據倉庫
和高可用性解決方案提供了必要的能力
開發人員和數據庫管理員可以同時使用Oracle流的所有能力
如果他們的要求發生了變化
他們可以簡單地啟用Oracle流的一個新功能
而不必放棄現有的功能
Oracle流提供了一系列的元素
通過利用這些元素
用戶可以控制哪些信息可以放入流中
流應如何流動或通過哪些途徑從一個節點流向另一個節點
當流中的事件流向每個節點時它們發生了哪些變化
以及流如何終止等問題
通過指定作用於流上的元素的配置
用戶可以強調出特定的要求
為了簡化Oracle流的部署
Oracle提供了為特定市場所特別配置的應用
Oracle流的架構是非常靈活的
如上圖所示
流包含三個基本元素
捕獲
存儲
消費
捕獲
Oracle流支持捕獲事件(數據庫變化
和應用生成的信息)並存入存儲區域
這些事件可以通過兩種方式捕獲
對於隱式捕獲
服務器在一個源數據庫中捕獲DML和DDL
顯式捕獲則允許應用明確地生成事件並將其放入存儲區域
Oracle流的顯著特征之一是支持基於日志的變更捕獲
從重做日志文件中直接捕獲變更可以使源系統的間接費減低到最少
基於日志的捕獲使得表的變更可以被存入日志文件
從而可以保證當發生損害或媒體故障時的可恢復性
Oracle
i數據庫可以讀
分析和解釋重復操作信息
這些信息當中可能包括數據庫活動歷史的信息
Oracle
i 數據庫第二版可以挖掘信息並將變更數據傳遞到捕獲過程
數據庫提供了輔助的日志記錄功能
它可以將附加信息如主鍵列記錄到重做流中
以有助於這些信息的傳遞
捕獲處理首先捕獲從重做日志中提取出來的變更數據
將其格式化為邏輯變更記錄(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