oracle高級複製之一—三種複製技術特點
oracle提供三種高級備份功能
高級複製(Advanced Replication)
流複製(Streams Replication)
備庫(Dataguard)
一 dataguard:
dataguard在高可用及容災方面一般是dba的首選,不管是物理備用庫(physical standby database)還是邏輯備用庫(logical standby database),它們都具有一些共同的待徵。
配置和管理方面的成本:dataguard比stream replication簡單方便;
安全與穩定方面的成本:dataguard比stream replication穩定可靠。
二 流複製:
適用於如下情況:
1、局部複製 stream可以只複製某些表或某些模式
2、異構環境 充分利用現有的設備與技術
3、遠程容災 stream對網絡的要求較dataguard低
stream replication有靈活的複製策略,不僅可以配置只複製某些表,還可以配置僅複製某些表上的ddl或dml,相比dataguard必須整個數據庫複製而言,可以節省相當的存儲投資。
如果在異構環境,即不同的操作系統,那dataguard將會束手無策,非stream replication莫屬,這樣可以充分利用現有的環境,配置高用可方案,在異構環境,stream replication將會是advanced replication的強勁對手。
stream replication傳播的是經過logmnr挖掘幷包裝的邏輯改變記錄(LCRs),相比dataguard傳送archived redo log、advanced replication的mview log與mview刷新的方式,stream replication對網絡的需求降低了很多,
三 高級複製:
advanced replication相對於dataguard,缺點是:配置與管理較複雜、安全與穩定性不夠;優點:局部複製、異構環境等。advanced replication是一種相當成熟的技術,在許多關鍵系統中得到成功的運用,相對於9iR2推出的stream replication而言,雙方適用的環境雖然相當,比如都可以進行局部複製、異構複製、遠程容災等,advanced replication目前在穩定性與安全性方面更經得起考驗。
對比stream replication與advanced replication底層的實現技術,stream replication在實時性、穩定性、高效率、低消耗(較少的cpu/network資源)等方面更有優勢,但凡一些新推出的功能,都或多或少存在一些不確定的因素。
在10gR1中,oracle針對目前stream replication存在的弱點進行了增強,不僅提供了從advanced replication遷移到stream replication的腳本,還提供了stream replication的配置與監控工具,stream replication在配置與管理方面必將智能化、簡單化,擔負起與shareplex爭奪企業數據複製市場的重任。
四 高級複製與流複製區別
高級複製與Streams Replication的原理是完全不同的,Streams Replication可以到表,用戶,數據庫級別,但高級複製似乎只能到表一級。
Streams Replication不是高級複製的升級版。
異構環境下,oracle的高可用和容災有高級複製和stream 複製兩種,兩種的異同點如下:
1.高級複製是基於觸發器(trigger)原理,而stream是基於日誌挖掘原理,因此stream複製對源數據庫的性能影響更小,但實時性不如高級複製。
2.高級複製複製的對象是基於數據庫目標(object)的,如表、索引和存儲過程,而stream複製可以針對表、方案(schema)和整個數據庫,因此如果出於容災整個數據庫的考慮,stream複製的配置相對簡單。
3.高級複製是一種相當成熟的技術,在許多關鍵系統中得到成功的運用,相對於9iR2推出的stream複製,高級複製目前在穩定性與安全性方面更經得起考驗。
4.從發展的角度看,流的應用會越來越多,從oracle10g,oracle公司提供了從高級複製向流複製移植的工具,可以看出,oracle公司會更偏重於基於流的新技術。
5.由於高級複製是基於觸發器的,因此所有的複製對象結構(ddl)的改變,都必須通過oracle提供的複製包來實施,和應用結合的比較緊,更適合於開發者使用,而流複製則更適合dba來實施。
6. 流複製支持雙向數據複製,而高級複製會有衝突;
7. 流複製支持異構數據庫複製,而沒有資料說明高級複製也有相同功能;
兩種實際使用來看,streams複製需要更少的帶寬,2m帶寬,如果 streams複製不行,高級複製大概更沒戲,但是用streams最好別網絡斷線時間過長,不知道是bug還是oracle沒考慮這種情況,如果複製停 頓一段時間,再恢復正常,大概是隊列表中消息太多了,入隊出隊都很慢,非線性增長啊,這樣就需要不短的一段時間來同步數據,高級複製就沒這種狀況。