DG Stream和advanced的比較

2021-06-06 09:40:01 字數 2865 閱讀 8710

文章出處,感謝作者的分享:

dataguard在高可用及容災方面一般是dba的首選,畢竟dataguard在這方面存在壓倒性的優勢,不管是物理備用庫(physical standby database)還是邏輯備用庫(logical standby database),它們都具有一些共同的待徵。

配置和管理方面的成本:dataguard比stream replication簡單方便;

安全與穩定方面的成本:dataguard比stream replication穩定可靠。

對對於乙個24x7的系統來說,這些是非常重要的,系統宕機時間的增加不僅影響著公司的形象,還會影響公司的效益;採用dataguard,資料的安全性相當有保障,物理備用庫可以在最短的時間完成故障切換,邏輯備用庫在保障資料安全的同時,也可以承擔大量的報表等業務;由於dataguard的配置與管理比較簡單,同理也降低了dba的工作強度;那什麼情況下選擇使用stream replication呢?

l 區域性複製 stream可以只複製某些表或某些模式

l 異構環境 充分利用現有的裝置與技術

l 遠端容災 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對網路的需求降低了很多,在遠端異地容災的過程中,租用網路頻寬是一筆較高的費用,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爭奪企業資料複製市場的重任。

綜上所述,oracle在資料複製方面,dataguard、advanced replication、stream replication都有自己的特點及獨到的地方,做為dba,用什麼樣的方案取決於目前的裝置環境、業務需求、將來的發展趨勢以及已經成熟的技術。當然,對於已經選擇的資料複製方案,技術上必須有一定的掌握;畢竟所有的方案都不是沒有問題的,即使目前較安全、穩定、便於管理的dataguard,也會出現一些莫明其妙的事情,所以最好做到良好的監控,預防可能存在的問題,問題一旦發生,能快速地解決問題。

高階複製與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來實施。

兩種都用了一段時間了,實際使用來看,streams複製需要更少的頻寬,2m頻寬,如果 streams複製不行,高階複製大概更沒戲,但是用streams最好別網路斷線時間過長,不知道是bug還是oracle沒考慮這種情況,如果複製停頓一段時間,再恢復正常,大概是隊列表中訊息太多了,入隊出隊都很慢,非線性增長啊,這樣就需要不短的一段時間來同步資料,高階複製就沒這種狀況。

stream對系統的設計與維護方要有相當的對stream技術的把控能力,而大多數係分與dba對這個東西都沒有經驗,所以難以推廣;dataguard勝在維護簡單可靠,一般dba都可以維護。stream以後會的前景會非常廣闊! 尤其是雙向複製,解決了很多實際問題。

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...

rpx和樣式和class和flex

5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...

if和switch和for語句

if和switch很像。具體什麼場景下,應用那個語句呢?如果判斷的具體數值不多,而是符合byte,short,int,char,字串。這五種型別。雖然兩個語句都可以使用,建議使用switch語句,因為效率稍高。其他情況,對區間判斷,對結果為boolean型別判斷,使用if,if的使用範圍更廣。whi...