DG有下面三種模式
– Maximum protection
– Maximum availability
– Maximum performance
在Maximum protection下, 可以保證從庫和主庫數據完全一樣,做到zero data loss.事務同時在主從兩邊提交完成,才算事務完成。如果從庫宕機或者網絡出現問題,主從庫不能通訊,主庫也立即宕機。在這種方式下,具有最高的保護等級。但是這種模式對主庫性能影響很大,要求高速的網絡連接。
在Maximum availability模式下,如果和從庫的連接正常,運行方式等同Maximum protection模式,事務也是主從庫同時提交。如果從庫和主庫失去聯系,則主庫自動切換到Maximum performance模式下運行,保證主庫具有最大的可用性。
在Maximum performance,主庫把歸檔的 archived log通過arch進程傳遞給從庫,在這種方式下,主庫運行性能最高,但是不能保證數據不丟失,且丟失的數據受redo log的大小影響。在redo log過大的情況下,可能一天都沒有歸檔一個日志,可以通過手工切換日志的方式來減小數據的丟失。
大家在做dataguard database 的時候一般選擇什麼樣的模式?
目前國內基本上是最大性能模式,其他模式會整死你
Maximum availability覺得也挺好的,如果網絡沒有問題,和Maximum protection一樣,如果網絡不好和Maximum performance一樣
首先Maximum protection在只有一台standby database 的情況下一般不會使用的,一方面對主庫的性能影響比較的大,一方面要保證快速安全的網絡速度,如果網絡斷開或者standby database 失效的話,那麼會引起主庫的down機,雖然說可以最大保護數據,但是還是不安全,如果有多台standby database 的話可以考慮
Maximum performance;雖然對主庫的性能影響不大,但是對數據的保護不好啊,9i一般日志默認大小是100M,如果主庫的磁盤全不壞了,那至少要損失100m 的日志數據啊,這就起不到保護數據的作用
現在比較好的就是Maximum availability,在正常情況下運行在Maximum protection下,如果網絡或者standby dababase 有問題的時候會自動切換到Maximum performance下,但是我在測試的時候發現如果我把standby 以read only open 的時候發現主庫就不傳送日志了,stanndby database 就失效了
我用Maximum performance模式.
我認為要看生產需要,不同的應用需求不一樣,我們的庫就是不能宕,所以就不可能使用保護模式了,呵呵
覺得Maximum protection切換比較麻煩,以前忙了好半天才切換成功
還是用第三種模式吧!成熟!
這個應該關鍵還是看需要吧,客戶允許宕機時間,允許數據丟失多少,客戶現有機器設備條件都要綜合考慮的。沒有最好,只有最合適
呵呵比較好的一種方式是使用Max performance 但是 log transfer 使用LGWR ASYNC NOAFFIRM
這樣,在保證性能的情況下,在standby處保留了一份redo log,雖然在Crash時仍然可能會丟失數據,但是可以控制在一定范圍內……
不過,使用LGWR時,雖然使用Max performance ,在standby 異常down的時候,仍然有可能使Primary hung 住一定時間。在我做過的測試中,如果standby 的網絡斷了,Primary hung住了3 min。雖然可以通過修改DB 參數以及OS 參數使這個hung的時間縮短,但還是存在一定風險。
我最終采用的是另一種折衷方式,Max performance , ARCH optional 的傳輸模式。另外,在storage 和 local disk 上各保存一份redo log,以防范 storage的crash……
原帖:http://hi.baidu.com/byfeihz/item/d238b6975ce371c8b62531f7