Oracle DataGuard介紹
?一、?DataGuard的基本原理
當某次事務(wù)處理對生產(chǎn)數(shù)據(jù)庫中的數(shù)據(jù)作出更改時, Oracle數(shù)據(jù)庫將在一個聯(lián)機重做日志文件里記錄此次更改。在 DataGuard中能夠配置寫日志的這個過程,除了把日志記錄到本地的聯(lián)機日志文件和歸檔日志文件里,還能夠通過網(wǎng)絡(luò),把日志信息發(fā)送到遠程的從 (standby) 數(shù)據(jù)庫server上。這個備用日志文件寫入過程能夠是實時、同步的,以實現(xiàn)零數(shù)據(jù)丟失(最大保護模式 maximum protection );也能夠是異步的,以降低對網(wǎng)絡(luò)帶寬的壓力(最大性能模式 maximum performance );或者是異步和同步能夠自己主動切換的模式(最大可用模式 maximum availability )。當備份數(shù)據(jù)庫接收到日志信息后, Data Guard能夠自己主動利用日志信息實現(xiàn)數(shù)據(jù)與主數(shù)據(jù)庫的實時同步。當主數(shù)據(jù)庫打開并處于活動狀態(tài)時,備用數(shù)據(jù)庫能夠運行 恢復(fù) 操作,假設(shè)主數(shù)據(jù)庫出現(xiàn)了故障,備用數(shù)據(jù)庫即能夠被激活并接管生產(chǎn)數(shù)據(jù)庫的工作 。
?
二、? 3種模式的特點
保護模式 |
在出現(xiàn)災(zāi)難時數(shù)據(jù)丟失的風險 |
重做傳輸機制 |
是否須要 standby redo log |
磁盤寫入 |
最大保護 |
零數(shù)據(jù)丟失 |
LGWR SYNC |
YES |
AFFIRM |
最高可用性 |
零數(shù)據(jù)丟失 |
LGWR SYNC |
YES |
AFFIRM |
最高性能 |
最小數(shù)據(jù)丟失 - 通常為幾秒 |
LGWR ASYNC 或 ARCH |
可沒有 但 推薦有 |
AFFIRM 或 NOAFFIRM |
AFFIRM:表示主數(shù)據(jù)庫上的 REDO LOG僅僅有被寫入到從數(shù)據(jù)庫的standby log才算有效 。
?
1?最大保護模式
最大保護模式為主數(shù)據(jù)庫提供了最高水平的數(shù)據(jù)保護,從而確保了一個全面的零數(shù)據(jù)丟失災(zāi)難恢復(fù)解決方式。當在最大保護模式下執(zhí)行時,重做記錄由日志寫入器 (LGWR) 進程從主數(shù)據(jù)庫同步地傳輸?shù)絺溆脭?shù)據(jù)庫,而且直到確認事務(wù)數(shù)據(jù)在至少一個備用server上的磁盤上可用時,才在主數(shù)據(jù)庫上提交事務(wù)。強烈建議,這樣的模式應(yīng)至少配置兩個備用數(shù)據(jù)庫。當最后參與的備用數(shù)據(jù)庫不可用時,主數(shù)據(jù)庫上的處理將停止。這就確保了當主數(shù)據(jù)庫與其全部備用數(shù)據(jù)庫失去聯(lián)系時,不會丟失事務(wù)。
因為重做傳輸?shù)耐教匦裕@樣的最大保護模式可能潛在地影響主數(shù)據(jù)庫響應(yīng)時間。能夠通過配置一個低延遲網(wǎng)絡(luò),并為它分配足夠應(yīng)付高峰事務(wù)負載的帶寬來將這樣的影響減到最小。須要這樣的最大保護模式的企業(yè)有股票交易所、貨幣交易所、金融機構(gòu)等。
?
2?最高可用性模式
最高可用性模式擁有僅次于最高水平的主數(shù)據(jù)庫數(shù)據(jù)可用性。如同最大保護模式一樣,重做數(shù)據(jù)由 LGWR 從主數(shù)據(jù)庫同步地傳輸?shù)絺溆脭?shù)據(jù)庫,直到確認事務(wù)數(shù)據(jù)在備用server的磁盤上可用時,事務(wù)才在主數(shù)據(jù)庫上完畢。只是,在這樣的模式下(與最大保護模式不同),假設(shè)最后參與的備用數(shù)據(jù)庫變?yōu)椴豢捎? — 比如因為網(wǎng)絡(luò)連接問題,處理將在主數(shù)據(jù)庫上繼續(xù)進行(類似于MySQL-5.5中的半同步復(fù)制)。備用數(shù)據(jù)庫與主數(shù)據(jù)庫相比,可能臨時落在后面,但當它再次變?yōu)榭捎脮r,備用數(shù)據(jù)庫將使用主數(shù)據(jù)庫上累積的歸檔日志自己主動同步,而不會丟失數(shù)據(jù)。
因為同步重做傳輸,這樣的保護模式可潛在地影響響應(yīng)時間和吞吐量。能夠通過配置一個低延遲網(wǎng)絡(luò),并為它分配足夠應(yīng)付高峰事務(wù)負載的帶寬來將這樣的影響減到最小。
最高可用性模式適用于想要確保獲得零數(shù)據(jù)丟失保護,但不想讓生產(chǎn)數(shù)據(jù)庫受網(wǎng)絡(luò) /備用server故障影響的企業(yè)。假設(shè)又一個故障隨后影響了生產(chǎn)數(shù)據(jù)庫,然后最初的網(wǎng)絡(luò) /備用server故障得到解決,那么這些企業(yè)將接受數(shù)據(jù)丟失的可能性。
?
3?最高性能模式
最高性能模式是默認的保護模式。它與最高可用性模式相比,提供了略微少一些的主數(shù)據(jù)庫數(shù)據(jù)保護,但提供了更高的性能。在這樣的模式下,當主數(shù)據(jù)庫處理事務(wù)時,重做數(shù)據(jù)由 LGWR 進程異步傳輸?shù)絺溆脭?shù)據(jù)庫上。另外,也能夠?qū)⒅鲾?shù)據(jù)庫上的歸檔器進程 (ARCH) 配置為在這樣的模式下傳輸重做數(shù)據(jù)。在不論什么情況下,均先完畢主數(shù)據(jù)庫上的寫操作,主數(shù)據(jù)庫的提交操作不等待備用數(shù)據(jù)庫確認接收(類似于MySQL中的異步復(fù)制)。假設(shè)隨意備用目標數(shù)據(jù)庫變?yōu)椴豢捎茫瑒t處理將在主數(shù)據(jù)庫上繼續(xù)進行,這對性能僅僅有非常小的影響或沒有影響。
在主數(shù)據(jù)庫出現(xiàn)問題的情況下,尚未被發(fā)送到備用數(shù)據(jù)庫的重做數(shù)據(jù)會丟失。可是,假設(shè)網(wǎng)絡(luò)有足夠的吞吐量來跟上重做流量高峰,而且使用了 LGWR 進程來將重做流量傳輸?shù)絺溆胹erver,則丟失的事務(wù)將很少或者為零。
?
三、? Oracle Dataguard三種保護模式特點
1?最大保護模式
?
1).這樣的模式提供了最高級別的數(shù)據(jù)保護能力
2).重做日志在至少一個物理從庫 數(shù)據(jù)庫 后,主庫的事務(wù)才可以提交
3).主庫找不到合適的從庫寫入時,主庫會自己主動關(guān)閉,防止無保護的數(shù)據(jù)出現(xiàn)
4).長處:該模式能夠保證從庫沒有數(shù)據(jù)丟失
5).缺點:主庫的自己主動關(guān)閉會影響到主庫的可用性,同一時候須要從庫恢復(fù)后才干提交,對網(wǎng)絡(luò)等客觀條件要求很的高,主庫的性能會受到很大的影響。
?
2?最大可用性模式
?
1).這樣的模式提供了僅次于 “最大保護模式”的數(shù)據(jù)保護能力
2).重做日志在至少一個物理從庫數(shù)據(jù)庫后,主庫的事務(wù)才可以提交
3).主庫找不到合適的從庫寫入時,主庫不會關(guān)閉,而是暫時減少到 “最大性能模式”模式,直到問題得到處理
4).長處:該模式能夠在沒有問題出現(xiàn)的情況下保證從庫沒有數(shù)據(jù)丟失,是一種折中的方法
5).缺點:在正常執(zhí)行的過程中缺點是主庫的性能收到諸多因素的影響
?
3?最大性能模式
?
1).默認模式,提供主數(shù)據(jù)庫的最高可用性
2).保證主庫執(zhí)行過程中不受從庫的影響,主庫事務(wù)正常提交,不因從庫的不論什么問題影響到主庫的執(zhí)行
3 ).長處:避免了從庫對主數(shù)據(jù)庫的性能和可用性影響
4 ).缺點:假設(shè)與主庫提交的事務(wù)相關(guān)的恢復(fù)數(shù)據(jù)沒有發(fā)送到從庫,這些事務(wù)數(shù)據(jù)將被丟失,不能保證數(shù)據(jù)無損失
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
