離線與在線容災數據復制技術的比較
一、概述
近幾年來,容災已經成為信息數據中心建設的熱門課題。很多容災技術也快速發展起來,對用戶來說也有很廣闊的選擇余地。但由于容災方案的技術復雜性和多樣性,一般用戶很難搞清其中的優劣以確定如何選擇最適合自己狀況的容災解決方案。本文我們就容災建設中的備份及復制技術做一個初步探討,希望能對客戶的數據中心容災建設提供一些參考。
目前有很多種容災技術,分類也比較復雜。但總體上可以區分為離線式容災(冷容災)和在線容災(熱容災)兩種類型。
二、離線式容災
所謂的離線式容災主要依靠備份技術來實現。其重要步驟是將數據通過備份系統備份到磁帶上面,而后將磁帶運送到異地保存管理。離線式容災具有實時性低、可備份多個副本、備份范圍廣、長期保存、投資較少等特點,由于是備份一般是壓縮后存放到磁帶的方式所以數據恢復較慢,而且備份窗口內的數據都會丟失,因此一般用于數據恢復的RTO(目標恢復時間)和RPO(目標恢復點)要求較低的容災。也有很多客戶將離線式容災和在線容災結合起來增加系統容災的完整性和安全性。
三、在線容災
在線容災要求生產中心和災備中心同時工作,生產中心和災備中心之間有傳輸鏈路連接。數據自生產中心實時復制傳送到災備中心。在此基礎上,可以在應用層進行集群管理,當生產中心遭受災難出現故障時可由災備中心接管并繼續提供服務。因此實現在線容災的關鍵是數據的復制。
和數據備份相比,數據復制技術具有實時性高、數據丟失少或零丟失、容災恢復快、投資較高等特點。根據數據復制的層次,數據復制技術的實現可以分為三種:存儲系統層數據復制、操作系統數據復制和數據庫數據復制。
1、存儲系統層數據復制
現在的存儲設備經過多年的發展已經十分成熟。特別是中高端產品,一般都具有先進的數據管理功能。遠程數據復制功能幾乎是現有中高端產品的必備功能。要實現數據的復制需要在生產中心和災備中心都部署1套這樣的存儲系統,數據復制功能由存儲系統實現。如果距離比較近(幾十公里之內)之間的鏈路可由兩中心的存儲交換機通過光纖直接連接,如果距離在100公里內也可通過增加DWDM等設備直接進行光纖連接,超過100公里的距離則可增加存儲路由器進行協議轉換途徑WAN或INTERNET實現連接,因此從理論上可實現無限制連接。
存儲系統層的數據復制技術對于主機的操作系統是完全透明的,是對于將來增加新的操作平臺,可不用增加任何復制軟件的投資,即可完成實現復制。這樣管理比較簡單,最大程度保護了用戶的投資,達到充分利用資源的目的。基于存儲的復制一般都是采ATM或光纖通道做為遠端的鏈路連接,不僅可以做到異步復制,更可以做到同步復制,使兩端數據可做到實時同步的目的,保證了數據的一致性。缺點是由于基于存儲是由存儲硬件廠商提供的,在兼容性方面有局限性。用戶要使用同一廠商的devices,給用戶造成的選擇面太小,成本容易提高,并且對線路帶寬的要求通常也較高。對于預算充足,存儲環境不是很復雜的企業來說,選擇基于存儲的技術比較適合。
存儲系統層的數據復制基于同構的存儲,各個存儲廠商都有自己的復制軟件,如IBM PPRC、EMC SRDF、HP Continues Access、HDS TrueCopy等,以下舉例說明存儲系統層的數據復制原理。
遠程鏡像(CA)介紹
HP Continuous Access XP 通過向遠地鏡像復制數據來滿足系統的高可用性和災難恢復的需求。它通過同步模式,將數據從一臺XP磁盤陣列上拷貝到遠端的另一臺XP磁盤陣列上,從而實現容災解決方案。
Continuous Access XP Extension 使Continuous Access XP能夠以高性能的異步或同步方式進行遠程XP磁盤陣列的拷貝。根據標書中的要求,必須同時提供同步和異步的存儲復制方式,CA完全滿足。
CA是基于磁盤陣列的容災方式。其中, CA能夠實現同步/異步、同城集群/洲際集群,以及Solaris、AIX、Windows各種OS集群擴展,還可以實現新XP到新XP、老XP到新XP以及多中心容災等功能,全面實現了可用性與可擴展性的結合。
CA同步加上CA異步,在本地和遠程XP磁盤陣列之間實現高性能實時遠程數據鏡像,以及快速切換及回切,使用戶能輕松管理,并實現高可用性。CA同步方式的距離可以達到100公里,但是從性能的角度出發,一般都控制在50公里內??梢越ㄔO同城容災集群,消除計劃宕機時間,降低非計劃的宕機時間;異步方式的距離可以達到數千公里,可以集成遠程數據鏡像和異構服務器的集群,增強總體方式的可用性,在同城災難發生的時候,保證連續運作。其中,洲際集群沒有距離的限制,對應用和數據完全透明,可實現全球范圍的容災方案。
同時,針對關鍵用戶的特殊需求,CA可以實現多中心容災解決方案,其中,同步容災中心的距離可以達到50公里,異步中心可以在全球的任何一個地方,至少有三個中心有鏡像的數據,而且三個中心之間可以實現遠程容災。
(1)CAXP磁盤卷組
CAXP的磁盤卷組由不同的XP裝置內或不同CLUSTER內命名為P-VOL和S-VOL的2個邏輯磁盤卷構成。在具有CAXP磁盤卷組關系后:
P-VOL被稱為主磁盤卷。P-VOL可被讀/寫。
S-VOL(遠程磁盤卷)被稱為副磁盤卷。在XP內部的控制裝置的作用下,P-VOL的內容和服務器來的寫數據被拷貝到S-VOL(可采用同步或異步兩種方式)。CAXP卷組建立后,S-VOL為只讀磁盤卷。在一個XP里,既可有P-VOL,也可有S-VOL,這樣可以實現雙向數據境像。
CAXP的磁盤卷組,即P-VOL和S-VOL間,可以是相同的RAID類型,也可以是不同的RAID類型,具體的RAID級別配合表如下所示:
For P-VOL
For S-VOL
RAID 1
RAID 1
RAID 5
RAID 5
RAID 1
RAID 5
RAID 5
RAID 1
CAXP的RAID級別
(2)MCU和RCU
MCU(主磁盤控制器)和RCU(遠程磁盤控制器)分別和P-VOL,S-VOL相連,MCU控制由服務器來的寫向P-VOL的數據的寫操作,還控制P-VOL和S-VOL之間數據拷貝的操作,并且提供CAXP磁盤卷組的狀態和構成的管理。
RCU執行由MCU發出的寫命令操作。寫操作的執行方法和執行服務器來的寫操作過程相同。除此之外,RCU還具有管理一部分CAXP磁盤卷組的狀態和構成信息的能力。
對于任何一個磁盤卷組,都需要定義MCU/RCU。一個XP的磁盤控制裝置在控制P-VOL時,可作為MCU使用,當控制S-VOL的時侯,可作為RCU使用。
(3)CA的同步和異步復制
基于存儲的數據復制,主要有同步數據復制和異步數據復制兩種。
同步數據復制,指通過將本地生產數據以完全同步的方式復制到異地,每一本地IO交易均需等待遠程復制的完成方予以釋放。
同步方式的數據復制
同步復制方式的傳輸距離限制:
l FC光纖通道最大傳輸距離為10KM;
l ESCON通過中繼方式最大可傳輸43KM;
l DWDM方式最大傳輸距離為100KM。
異步數據復制則是指將本地生產數據以后臺同步的方式復制到異地,每一本地IO交易均正常釋放,無需等待遠程復制的完成。
異步方式的數據復制
同步復制實時性強,災難發生時遠端數據與本地數據完全同步。但這種方式因為數據在網絡中的傳輸延遲而影響主節點的應用性能。
異步復制則不然,但可能導致災備點數據比主點數據有一定延遲,這些延遲的數據在災難發生后將丟失。由此可見,同步方式和異步方式實際上是各有千秋,需要依據具體的應用,在應用性能和潛在的可能丟失數據量之間作一個取舍和均衡。
(4)CAXP卷組的更新拷貝模式
在組建災難備份系統時,往往是假定正在使用的主中心的存儲數據受到毀壞。這時啟動遠程備份中心的備份存儲系統,來接替主中心的工作或從備份存儲設備中把數據恢復到主中心端,在主中心重新啟動應用。不論使用哪種方法,遠程備份中心的備份數據與主中心端數據的一致性將會決定災難恢復的時間。在災難發生后,為了盡可能減少花在數據一致性分析上的時間,以XP1024存儲為例,XP1024提供用于災難備份的CAXP磁盤卷組的拷貝模式的設定選擇來加快事后分析數據的一致性。
遠程數據拷貝操作
更新拷貝模式(Fence Level)共有3種:Data、Status、Never。CAXP卷組的狀態在變為“Suspend”后,更新拷貝模式將會對P-VOL的寫操作產生影響,在建立災難備份系統方案時,應預先考慮好CAXP卷組的一致性要求,對應的拷貝模式可由下表選出:
Type of Failure
S-VOL Data
S-VOL Status
Never
The update copy operation failed,and the MCU was not able to change the status of the S-VOL to suspended
Write I/O operations to the P-VOL will be:
REJECT
Accepted
Accepted
The update copy operation failed,and the MCU was not able to change the status of the S-VOL to suspended
Write I/O operations to the P-VOL will be:
REJECTED
REJECTED
Accepted
l 更新拷貝模式:Data——在這個模式下,P-VOL和S-VOL的一致性會完全被保證。當兩個卷組之間不能保證同步時,即當卷組狀態變為Suspend時,MCU將會拒絕對服務器對P-VOL的寫操作以保證兩個磁盤卷的一致性。這種模式在災害發生時將會最大限度的減少數據一致性分析所花的時間。(注:初期拷貝完成之前,如果災害發生,將導致P-VOL和S-VOL的數據不一致,因此不能把S-VOL用于災害恢復)。在Data這種拷貝模式下,一旦FC線路或S-VOL出現故障,都將使P-VOL的寫操作停止,并向系統發出寫錯誤信息中斷系統的應用。
l 更新拷貝模式:Status——當MCU檢測出CAXP卷組之間失去同步后,且無法將S-VOL的狀態改變為Suspend時,MCU會拒絕服務器向P-VOL的寫操作,并對服務器發出寫錯誤的信息。當FC鏈路失效時這種模式會起作用,如果客戶認為S-VOL的偶爾失去同步是可容忍的,這種模式可被使用。當S-VOL由于某種原因失效時,并且卷組狀態成功地變為Suspend時,P-VOL的讀寫操作可繼續進行,這時P-VOL里更新過的磁道會被記錄下來,當S-VOL被恢復后,更新數據不會自動的被拷貝到S-VOL,而需要重新同步這個卷組,數據的更新拷貝才會被執行。
l 更新拷貝模式:Never——在CAXP卷組失去同步后,無論S-VOL的狀態能否被改為Suspend,服務器對P-VOL的寫操作不會被中止。在這種模式下,只要P-VOL自己不出現故障,服務器傳來的寫操作就會被執行。當FC Link或S-VOL由于某種原因失效后,P-VOL的更新磁道將會被MCU記錄下來。故障排除后,用卷組激活命令可重新同步P-VOL和S-VOL,這時,只拷貝P-VOL里的更新磁道。
Data及Status模式對保持數據一致性非常有好處的,但在線路或遠端XP1024故障時會對主服務器造成造成一定的影響,甚至導致應用系統掛起。
在這種拷貝模式下建立起來的CAXP鏡像卷組,即使在光纖或S-VOL故障引起P-VOL和S-VOL鏡象卷組失去同步后,只要P-VOL沒有遭到損壞,MCU就不會據絕服務器對P-VOL發出的寫操作。
從服務器端來看,P-VOL對S-VOL鏡象卷的數據更新象在正常進行,服務器的應用也不會被中斷。當出現光纖、DWDM、遠地備份中心XP1024停電等故障時,因為不影響應用的運行,所以沒有必要象“DATA”那樣強制中斷CAXP卷組的工作。同時必須在網管上采用必要手段,監控XP1024 Pair的狀態。一旦Pair狀態變成非duplex,必須盡快采取措施進行修復,否則一旦發生災難,由于遠地的XP1024 CA拷貝與主site的數據不同步,災難系統切換將會失敗,導致不必要的停機。
虛擬存儲技術的介紹
近年來,隨著存儲技術的不斷發展,在存儲系統層次數據復制技術上還出現基于網絡的存儲虛擬化設備來實現,這種方式的特點是依靠外加的網絡層設備來實現兩個存儲設備之間的數據復制,數據復制過程不占用主機資源,兩個存儲之間的數據同步在網絡層完成。
根據存儲虛擬化設備工作機制的不同,一般可分為帶內(In-Band)和帶外(Out-of-Band)兩種。
上圖所示為常見存儲虛擬化設備的系統結構圖。存儲虛擬化設備通過交換機分別連接主機端Fabric 和存儲端 Fabric,主要功能是管理對存儲設備上的邏輯卷,對已有邏輯卷進行虛擬化或創建虛擬的條帶卷,消除存儲設備異構對主機系統的影響,提高存儲設備的可用性和總體性能。另外一個功能就是卷復制和鏡像,通過存儲虛擬化設備實現兩個虛擬卷之間的數據安全保護。
通過存儲虛擬化設備實現卷鏡像復制功能的優勢在于操作由存儲虛擬化設備來完成、壓力集中的存儲虛擬化設備上,不需要主機參與,數據復制進程安全穩定。缺點是需要增加專用存儲虛擬化設備,帶外方式有的需要在主機端需要安裝存儲虛擬化設備的客戶端軟件,比如 UIT SVM;有的需要依賴高端智能交換機,比如 EMC VSM。目前使用這種技術的產品還不是很多,成熟性還有待提高,具有這種功能的專用設備價格也相對較高,所以采用這種方案的用戶比較少。
2、操作系統數據復制
主要通過操作系統或者數據卷管理器來實現對數據的遠程復制。這種復制技術要求本地系統和遠端系統的主機是同構的,其實現方式是基于主機的數據復制,容災方式工作在主機的卷管理器這一層,通過磁盤卷的鏡像或復制,實現數據的容災。這種方式也不需要在兩邊采用同樣的存儲設備,具有較大的靈活性,缺點是復制功能會多少占用一些主機的CPU資源,對主機的性能有一定的影響。
目前基于原廠的邏輯卷管理軟件如IBM AIX LVM、HP-UINX MirrorDisk、Sun Solaris SVM等可以實現在本廠平臺上的邏輯卷鏡像,專業的數據復制軟件提供了更大的靈活性,支持多個平臺的邏輯卷鏡像,其中代表性的軟件是Symantec VERITAS Storage Foundation 軟件。
Symantec VERITASStorage Foundation簡介
(1)Symantec遠程鏡像數據容災原理
Symantec的VERITAS Storage Foundation的鏡像技術構建容災系統是比較簡單的,它只有一個條件,就是將生產中心和災備中心之間的SAN存儲區域網絡通過光纖連接起來,建立城域SAN存儲網絡。然后就可以通過Storage Foundation提供的非常成熟的跨陣列磁盤鏡像技術來實現同城容災了,容災方案的結構如下圖所示:
從鏡像原理上講,在城域SAN存儲網絡上的兩套磁盤系統之間的鏡像,和在一個機房內的SAN上的兩個磁盤系統之間的鏡像并沒有任何區別。
利用裸光纖將生產中心和災備中心的SAN網絡連接起來,構成城域SAN網絡以后,利用 VERITAS Storage Foundation的邏輯卷管理功能,就可以實現生產中心磁盤系統和災備中心磁盤系統之間的鏡像了。如下圖所示:
在邏輯卷鏡像過程中,利用VERITAS Storage Foundation,可以創建任意一個邏輯卷(Volume)供業務主機使用,實際上是由兩個完全對等的,容量相同的磁盤片構成的,兩個磁盤片上的數據完全一樣,業務主機對該Volume的任意修改,都將同時被寫到位于生產中心和災備中心的兩個磁盤系統上。
采用這種方式,生產中心的磁盤陣列與同城容災中心的磁盤陣列對于兩地的主機而言是完全同等的。利用城域SAN存儲網絡和VERITAS Storage Foundation鏡像功能,可以實現數據系統的異地容災。并且消除了復制技術(無論是同步還是異步)的切換的動作,從而保證零停機時間,零數據損失的實現。
(2)Symantec遠程鏡像數據容災的技術特點
l 零停機時間和零數據損失
由于Storage Foundation 采用的是跨異構陣列的鏡像技術,而鏡像技實現原理,就決定了在這種方式下,無論是哪一邊的磁盤陣列由于物理故障停頓,都不會影響數據的可用性而造成數據的損失,這從根本上實現了在物理故障的情況下,數據的高度可用性。
l 故障修復后的快速重新同步
Storage Foundation 提供的鏡像技術,是基于日志的鏡像技術,無論由于主機發生故障,還是由于鏡像中的鏈路或是硬盤發生故障導致的鏡像被破壞的情況,都可以通過鏡像日至得以快速恢復。這使得鏡像恢復過程對系統的性能影響微乎其微。
l 跨磁盤陣列快照,實現邏輯錯誤快速恢復和容災中心數據利用
Storage Foundation 提供基于卷,以及文件系統的多種快照技術,其邏輯輯快照可采用少量磁盤空間,快速,多次的對文件系統,或者是卷作快照。因而,當用戶出現數據的邏輯錯誤時,利用快照就可以迅速恢復文件系統或卷。這在數據保護的體系,大大的彌補了傳統備份恢復保護方式速度慢的缺陷,從而把數據損失量降到最低限度。
同時,數據快照還被廣泛的利用在容災中心數據利用方面,比如可以通過快照實現數據備份、查詢、測試等。
l 數據同步過程高度可控
Storage Foundation Remoter Mirror 提供完整的容災命令集,在數據同步的過程中,可以隨時得知同步的進度,并可隨時暫停、繼續數據同步。
4、數據庫數據復制
數據庫數據復制技術通常采用日志復制功能,依靠本地和遠程主機間的日志歸檔與傳遞來實現兩端的數據一致。這種復制技術對系統的依賴性小,有很好的兼容性。缺點是本地復制軟件向遠端復制的是日志文件,這需要遠端應用程序重新執行和應用才能生產可用的備份數據。
目前基于數據庫的復制技術主要有:Oracle DataGuard、Oracle GoldenGate、DSG RealSync、Quest SharePlex 、IStream DDS等,以下舉例說明該復制技術的運行原理。
DataGuard軟件介紹
OracleData Guard 是管理、監控和自動化軟件的基礎架構,它創建、維護和監控一個或多個備用數據庫,以保護企業數據結構不受故障、災難、錯誤和崩潰的影響。
DataGuard 使備用數據庫保持為與生產數據庫在事務上一致的副本。這些備用數據庫可能位于距生產數據中心數千英里的遠程災難恢復站點,或者可能位于同一城市、同一校園乃至同一建筑物內。當生產數據庫由于計劃中斷或意外中斷而變得不可用時,Data Guard 可以將任意備用數據庫切換到生產角色,從而使與中斷相關的停機時間減到最少,并防止任何數據丟失。
作為 Oracle 數據庫企業版的一個特性推出的 Data Guard 能夠與其他的 Oracle 高可用性 (HA) 解決方案(如真正應用集群 (RAC) 和恢復管理器 (RMAN))結合使用,以提供業內前所未有的高水平數據保護和數據可用性。
(1)DataGuard重做應用和SQL應用
備用數據庫最初是從主數據庫的一個備份副本創建的。一旦創建了備用數據庫,Data Guard 自動將主數據庫重做數據傳輸給備用系統,然后將重做數據應用到備用數據庫中,從而使備用數據庫保持為與主數據庫在事務上一致的副本。
DataGuard 提供了兩種方法將這些重做數據應用到備用數據庫中,并使之與主數據庫在事務上保持一致。這些方法與 Data Guard 支持的兩種類型的備用數據庫對應:
● 重做應用,用于物理備用數據庫
● SQL應用,用于邏輯備用數據庫
(2)物理備用數據庫—重做應用
通過使用 Oracle 介質恢復應用從主數據庫接收到的重做數據,物理備用數據庫與主數據庫保持同步。它在物理上與主數據庫逐塊相同,因而數據庫模式(包括索引)是相同的。
主數據庫上的一個日志切換將觸發備用數據庫上的一個日志切換,從而使備用數據庫上的歸檔器進程將當前的備用重做日志文件歸檔到備用數據庫上的一個存檔日志中。隨后,Data Guard 重做應用使用一個專用進程(稱為管理的恢復進程 (MRP))讀取存檔日志,并將重做數據應用到物理備用數據庫中。如果啟用了 Oracle Database 10g中的 Oracle Data Guard 的新功能—實時應用,則 MRP 將在 RFS 進程寫滿當前的備用重做日志文件時直接從其中讀取重做數據。
通過加載物理備用數據庫并使用以下命令,可以在該數據庫上啟動 MRP(從而應用重做數據): ALTER DATABASE RECOVERMANAGED STANDBY DATABASE DISCONNECT FROM SESSION;介質恢復進程可以并行運行,以獲得 Data Guard 重做應用的最佳性能。在 Oracle Database 10g 之前的版本中,這需要在上述RECOVER MANAGED STANDBY DATABASE 命令中使用 PARALLEL 子句。在 Oracle Database 10g中,MRP 可以在啟動(無需 PARALLEL 子句)時自動確定并行恢復進程的最佳數量,這個數字視備用服務器上可用的 CPU 數量而定。
物理備用數據庫可以以只讀方式打開,并且可以在其打開時對其運行查詢,但無法在其以只讀方式打開的同時運行恢復。在備用數據庫以只讀方式打開時,傳送給它的重做數據將在備用站點上累積而不應用。不過,可以隨時在物理備用數據庫上恢復操作,并自動應用累積的重做數據。這允許物理備用數據庫以一個序列運行,這個序列可能包括在恢復中運行一段時間,然后以只讀方式打開來運行報表,接著重新運行恢復來應用尚未應用的重做數據。
要以只讀方式打開物理備用數據庫,則需使用以下命令在備用數據庫上取消恢復:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;然后可以只讀方式打開數據庫:ALTER DATABASE OPEN。
(3)邏輯備用數據庫--SQL 應用
盡管數據的物理組織和結構可能不同,但邏輯備用數據庫包含與主數據庫相同的邏輯信息。SQL 應用技術將從主數據庫接收到的重做數據轉換成 SQL 語句,然后在備用數據庫上執行 SQL 語句,以使邏輯備用數據庫與主數據庫保持同步。從而,在將 SQL 應用到邏輯備用數據庫上的同時,可以訪問邏輯備用數據庫來進行查詢和報表操作。
由于使用 SQL 語句更新邏輯備用數據庫,因此它保持以讀寫模式打開,而從主數據庫中更新的表可以同時用于諸如報表、合計、查詢等其他任務如。.還可通過在維護的表上創建額外的索引和物化視圖來優化這些任務。邏輯備用數據庫可以承載多個數據庫模式,用戶可以對這些模式中不從主數據庫進行更新的表上執行普通的數據處理操作。
SQL應用使用許多并行的執行服務器和后臺進程,它們將來自主數據庫的更改應用到邏輯備用數據庫中。下圖顯示了信息流和每一個進程所起的作用。
這些不同的 SQL 應用進程可以通過在邏輯備用數據庫上輸入這條簡單的命令來啟動: ALTERDATABASE START LOGICAL STANDBY APPLY;出于每個 SQL 應用進程的考慮,讀取器進程從存檔日志(如果啟用了實時應用,也可以是備用重做日志,)中讀取重做記錄。準備器進程將塊更改轉換成表更改或邏輯更改記錄 (LCR)。在這里,LCR 并不代表任何特定的事務。構造器進程對來自各個 LCR 的已完成事務進行組合。分析器進程檢查完成的事務,辨明不同事務之間的相關性。協調器進程(也稱為邏輯備用進程,即 LSP)負責將事務分配給應用進程、監控事務之間的相關性以及批準將更改提交給邏輯備用數據庫。應用器進程將已指定事務的 LCR 應用到數據庫中,并在協調器指示提交事務時提交。Data Guard 提供視圖來幫助查看每個進程的狀態。
(4)DataGuard數據保護模式
l 最大保護模式
最大保護模式為主數據庫提供了最高水平的數據保護,從而確保了一個全面的零數據丟失災難恢復解決方案。當在最大保護模式下運行時,重做記錄由日志寫入器(LGWR)進 程從主數據庫同步地傳輸到備用數據庫,并且直到確認事務數據在至少一個備用服務器上的磁盤上可用時,才在主數據庫上提交事務。強烈建議,這種模式應至少配 置兩個備用數據庫。當最后參與的備用數據庫不可用時,主數據庫上的處理將停止。這就確保了當主數據庫與其所有備用數據庫失去聯系時,不會丟失事務。
由于重做傳輸的同步特性,這種最大保護模式可能潛在地影響主數據庫響應時間。可以通過配置一個低延遲網絡,并為它分配足夠應付高峰事務負載的帶寬來將這種影響減到最小。需要這種最大保護模式的企業有股票交易所、貨幣交易所、金融機構等。
l 最高可用性模式
最高可用性模式擁有僅次于最高水平的主數據庫數據可用性。如同最大保護模式一樣,重做數據由LGWR從主數據庫同步地傳輸到備用數據庫,直到確認事務數據在備用服務器的磁盤上可用時,事務才在主數據庫上完成。不過,在這種模式下(與最大保護模式不同),如果最后參與的備用數據庫變為不可用—例如由于網絡連接問題,處理將在主數據庫上繼續進行。備用數據庫與主數據庫相比,可能暫時落在后面,但當它再次變為可用時,備用數據庫將使用主數據庫上累積的歸檔日志自動同步,而不會丟失數據。
由于同步重做傳輸,這種保護模式可潛在地影響響應時間和吞吐量。可以通過配置一個低延遲網絡,并為它分配足夠應付高峰事務負載的帶寬來將這種影響減到最小。
最高可用性模式適用于想要確保獲得零數據丟失保護,但不想讓生產數據庫受網絡/備用服務器故障影響的企業。如果又一個故障隨后影響了生產數據庫,然后最初的網絡/備用服務器故障得到解決,那么這些企業將接受數據丟失的可能性。
l 最高性能模式
最高性能模式是默認的保護模式。它與最高可用性模式相比,提供了稍微少一些的主數據庫數據保護,但提供了更高的性能。在這種模式下,當主數據庫處理事務時,重做數據由LGWR進程異步傳輸到備用數據庫上。另外,也可以將主數據庫上的歸檔器進程(ARCH)配置為在這種模式下傳輸重做數據。在任何情況下,均先完成主數據庫上的寫操作,主數據庫的提交操作不等待備用數據庫確認接收。如果任意備用目標數據庫變為不可用,則處理將在主數據庫上繼續進行,這對性能只有很小的影響或沒有影響。
在主數據庫出現故障的情況下,尚未被發送到備用數據庫的重做數據會丟失。但是,如果網絡有足夠的吞吐量來跟上重做流量高峰,并且使用了LGWR進程來將重做流量傳輸到備用服務器,則丟失的事務將非常少或者為零。
當主數據庫上的可用性和性能比丟失少量數據的風險更重要時,應該使用最高性能模式。這種模式還適合于WAN上的DataGuard部署,在WAN中,網絡的內在延遲可能限制同步重做傳輸的適用性。
基于數據庫日志跟蹤分析的復制軟件介紹
目前市場數據庫復制技術的工作原理大都與Oracle log相關,例如DNT IDR數據庫復制產品就是通過對Oracle Log日志進行分析獲取跟蹤源系統的交易指令,然后將交易指令傳到目標端進行重新執行的方式來實現數據復制的。本文以DNT IDR軟件為例介紹基于數據庫日志跟蹤分析的復制原理。
DNT IDR(以下簡稱IDR),是基于交易的邏輯級Oracle數據同步軟件,利用數據庫日志在線跟蹤、分析技術,將生產數據庫的交易信息以事務為單位,通過異步的方式,實時的傳遞、裝載到目標數據庫中,以達到源端、目標端數據保持同步的目的。是一種準實時同步軟件。該軟件具有以下特點:
l IDR不依賴硬件的同步能力,支持多種系統平臺,具有部署簡單、同步速度快、交易延遲時間短的特點。
l IDR能夠支持不同Oracle版本之間的交易同步。
l IDR同步的目標數據庫為在線打開狀態,可以隨時復用。
l IDR適用于(異構)熱容災、數據遷移、數據集中、數據分發、分擔業務等應用領域。
IDR利用數據庫日志在線跟蹤、分析技術,反向工程解析日志,將生產數據庫的交易信息以事務為單位,通過異步的方式,實時的傳遞、裝載到目標數據庫中,以達到源端、目標端數據保持同步的目的。
IDR技術原理與架構
(1)IDR的同步原理
a、歷史數據同步
使用快照方式:首次同步時,對于同步map所涉及的每一個表的同步過程如下:
l 鎖該表;
l 記錄同步時刻的scn;
l 讀取該表數據;
l 在讀取該表數據時接著將該表解鎖,無需等待該表數據讀取完畢。
在表做開始同步的時刻,鎖表是為了保證該表在日志中不會有交易發生,同時又因為記錄了scn,也不會有多余的交易被抓取、也不會漏掉相關交易。
開始讀取數據時,利用了oracle數據庫自身提供的“多版本”特性,能夠保證讀取數據的一致性。同時對該表進行解鎖,又使該表被鎖的時間不會太長從而嚴重影響正常交易。
這種方式保證了源端在任何時刻下都可以進行首次數據的批量同步而不會影響同步數據的準確性。
讀文件方式:首次同步時,對于同步map所涉及的每一個表的同步過程如下:
l 記錄同步時刻的scn;
l 讀取該表數據;
首次同步時,直接從oracle數據文件中讀取該表數據,同時記錄同步時刻的scn,由于這種方式要求在同步過程中,沒有交易產生,因此會保證歷史數據抓取的準確性。在同步完成后,將變化數據實時抓取。
b、交易抓取
IDR通過事先創建的試圖來捕獲日志變化,由于每次捕獲的日志的物理位置都會記錄,因此可以得出日志變化量。
后續的抓取日志、分析交易、傳輸交易,完全由IDR獨自完成,不使用oracle數據庫任何資源。
在每次抓取的日志量處理完成后,記錄在IDR的緩存目錄中,因此對于日常運行過程中,IDR停止或其它原因需要讀取歸檔日志時,根據記錄的日志物理位置來定位需要抓取的歸檔日志。
IDR抓取日志跟oracle數據庫是寫日志是并行操作而又互不影響。
正常情況下,IDR都是準實時的抓取變化日志量。
對于源端是rac環境來說:rac環境中,在每一個實例所在的主機操作系統上可以讀取另外主機的在線日志(包括歸檔日志)。通過每一個實例的日志和scn來保證交易順序的準確性。
c、交易分析
嚴格按照源端Oracle數據庫內部SCN執行順序以及已經提交的交易來合成交易文件,該交易文件號是依次遞增并且是唯一的,從0開始,交易文件號的算法跟oracle的scn算法一樣,可以保證在oracle數據庫正常使用期間,保證。IDR能夠正常使用。
IDR只處理已經完成提交的交易,對于回滾操作,IDR不處理該操作。
d、交易傳輸
IDR只傳輸交易內容,不傳輸交易內容的數據結構,采用專有的合成交易文件格式,只有IDR提供的工具才可以解析交易內容,這樣即證了在網絡傳輸過程中數據的安全性又可以保證網絡傳輸過程中數據的準確性。
滿足下列三種情況,源端將刪除該交易文件:
l 接受的交易文件號跟源端傳輸的一樣。
l 接受的交易文件大小跟源端傳輸的一樣。
l 接受的交易文件校驗碼跟源端傳輸的一樣。
e、交易裝載
目標端接受交易合成文件后,首先存放在緩存目錄中,然后嚴格按照從小到大順序進行裝載,裝載的交易文件不能缺失。否則裝載的進程將一直處于等待狀態,因此無論目標端是rac環境還是單機環境都可以保證裝載的準確性。
這樣就可以保證在目標端裝載過程中,保證按照源端合成的交易文件順序來裝載。
(2)IDR支持的同步特性
a、支持的同步對象
IDR支持兩種級別數據庫對象的同步:用戶級同步、表級同步。
用戶級同步:源端數據庫指定用戶及其所包含的表、視圖、索引、過程、函數、包、序列等數據對象全部同步到目標端數據庫指定的用戶下。
IDR支持源端用戶名和目標端用戶名不同的同步方式。
表級同步:表級同步分為單表同步和多表同步。
單表同步指定源端數據庫指定用戶下的單個表同步到目標端數據庫指定用戶下的單個表。
多表同步,即group方式,針對多個用戶,每個用戶只同步指定的部分表同步的情況。
b、支持的同步模式
同步模式主要指源端和目標端的架構模式,具體分為
1:1模式、1:n模式、n:1模式、1:1:1模式四種。
1對1的同步模式:
n對1同步模式:
1對n同步模式:
級聯同步:
可以根據具體情況選擇或組合以上同步模式到您所需要的應用架構中。
c、數據同步方式
IDR支持歷史數據同步、只同步變化數據同步兩種方式。這兩種方式和有效結合或單獨使用。
歷史數據指同步時刻已經存在的數據,歷史數據同步方式分為兩種:
l 快照方式
快照方式利用oracle的select的多版本特性,將歷史數據抓取到目標端,同時可選擇將變化數據實時同步,在歷史數據裝載完成后,再裝載變化數據。歷史數據的抓取與變化數據的抓取之間無縫結合,有業務運行也不影響數據同步的準確性。
相對而言,快照方式同步數據時間長,對于系統資源占有大。
l 讀文件方式
讀文件方式指IDR直接讀取oracle數據文件中的表數據,同時可選擇變化數據實時抓取。
相對而言,快照方式同步數據時間端,對于系統資源占有小。但是這種方式抓取歷史數據時,源端系統不能有業務,否則無法保證同步數據的準確性。
變化數據同步有兩種應用方式:
l 與歷史數據同步方式結合
IDR支持歷史數據與變化數據無縫結合的同步模式,這種方式無需停止業務。
l 單獨同步變化數據。
這種方式是在兩邊數據已經一致的情況下,將某一邊數據庫現產生的交易同步到另外一邊的數據庫中。
d、數據定位方式
目標端裝載交易時,對于目標端對應數據(表的記錄)的定位方式分為rowid和where兩種方式。
rowid方式:使用rowid同步方式,由于在目標端裝載時直接根據rowid方式定位表紀錄的物理位置,不會因為數量量的差異而影響查找紀錄的速度。
使用rowid方式時,首先必須進行全同步+增量同步結合的模式,后續的增量數據依賴全同步數據。即使源端某些表的紀錄完全相同,則也不會影響數據的準確性。
Where方式:Where方式在目標端裝載數據時,對于目標端對應的數據查找依賴對應表的where條件,對于對應數據的查找速度完全依賴于數據庫本身的查找速度。
主要滿足兩種應用需要:
一種跟rowid方式相同,差別在于表的數據不能出現重復紀錄。
另外一種方式是只同步變化數據部分。只依賴源端和目標端相關表的數據結構。這種方式采用IDR的只進行增量同步的方式進行。
(3)IDR同步的性能
a、讀取在線日志
IDR是直接通過讀取Oracle日志來分析出交易內容,而不是通過數據庫表來得到,這樣將不依賴數據庫本身的數據內容而直接得到交易信息。從而大大加快了合成交易文件的速度。
b、內存中完成交易解析
源端在線日志的抓取的最新位置是通過查詢數據庫實例sga的動態視圖得到的,這樣不僅速度快而且不會直接影響源端數據庫的物理I/O。
源端歸檔日志的抓取是直接抓取歸檔日志內容。也不會影響到源端數據庫的物理I/O。
抓取后的數據,只分析同步用戶或表相關的交易,對于跟同步用戶或表無關的交易直接丟棄。
日志的抓取、分析、合成大部分情況下都是在內存中完成的,只有少數批量交易數據時才會使用緩存目錄,這樣就可以盡可能的提高抓取、分析、合成交易的速度。
c、只合成已經提交的交易
IDR只合成跟同步用戶或表有關的、已經提交的交易,并且每一個交易的大小不會超過10MB。這樣將大大提高交易文件的合成速度。
d、實時壓縮傳輸
網絡傳輸時,首先在源端將交易合成文件在內存中進行壓縮,在目標端接收后在內存中完成解壓縮,即:進行傳輸之前先壓縮、目標端接受壓縮交易文件解壓縮后,存放到相應的緩存目錄下。這樣可以大大減少網絡流量,從而加快交易合成文件傳輸的速度。
對于不含有lob類型的字段,交易合成文件何以壓縮到10-15%左右。
e、通過rowid尋址
數據庫修改一條記錄通常依賴索引或全表掃描,這樣操作速度會因為數據量的差別而有明顯的差異。IDR是直接通過rowid對該記錄進行操作的,不會因為數據量的明顯差異使合成的交易文件中的交易提交速度有明顯的差異。這一點對于海量數據尤為明顯。
f、合成交易文件大小
IDR對每一個合成的交易文件最大上限為10MB,加上網絡傳輸時的壓縮功能,會使網絡傳輸速度大大提高。
由于每一個合成的交易文件最大為10MB,在目標端裝載時的讀取、裝載速度會很快、占用資源會比較少,從而大大加快了每一個交易合成文件的裝載速度。
g、首次同步的性能
對于首次同步而言,無論是快照方式還是讀數據文件的方式,IDR在源端支持多達16個并行同步、目標端支持并行裝載的模式,這樣可以充分利用主機資源,加快首次同步的速度,減少首次同步對于源端、目標端主機性能的影響。
h、增量同步的性能
對于某些情況下,目標節點裝載增量合成交易文件慢的情況,IDR支持多達32個并行裝載,可以將不同用戶或表的數據放在不同的增量目錄下,實行并行裝載,不過對于表之間有關聯關系的數據(比如外健),就需要將這些有關聯關系的表放在同一個增量目錄下,來保證裝載數據正確性。
轉載請注明來自夕逆IT,本文標題:《什么是流式文件,記錄式文件,次序文件,索引文件?》

還沒有評論,來說兩句吧...