天天看點

oracle三種複制技術之比較

oracle提供三種進階備份功能

進階複制(Advanced Replication)

流複制(Streams Replication)

備庫(Data Guard)

一 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必須整個資料庫 複制而言,可以節省相當的存儲投資。

如果在異構環境,即不同的作業系統

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. 流複制支援雙向資料複制,而進階複制會有沖突;