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