分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性備份和還原方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點處理方法,由其是一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性備份方法,以及一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性還原方法。
【背景技術(shù)】
[0002]分布式系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機(jī)網(wǎng)絡(luò)與存儲資源的節(jié)點相連,一般的做法是,將多節(jié)點的數(shù)據(jù)庫組合成一個大的數(shù)據(jù)庫對外提供服務(wù),其系統(tǒng)架構(gòu)如圖1所示,一般包括:
1、Load Balancer,負(fù)載均衡設(shè)備。
[0003]2、Global Transact1n Manager,全局事務(wù)管理模塊,負(fù)責(zé)全局事務(wù)號的管理,全局事務(wù)鏡像的管理,以下簡稱GTM。
[0004]3、Coordinators,協(xié)處理模塊,負(fù)責(zé)接收客戶端請求(SQL),解析客戶端SQL,重寫SQL為分布式SQL,并提交給響應(yīng)的數(shù)據(jù)節(jié)點(Data Nodes)執(zhí)行,接收Data Nodes的返回結(jié)果,如果需要聚合操作的話,則在處理完聚合之后再將數(shù)據(jù)返回給客戶端。在一個分布式系統(tǒng)中,協(xié)處理模塊一般部署有多臺,配合負(fù)載均衡設(shè)備,可以解決高可用和負(fù)載均衡的問題。
[0005]4、Data Nodes,用戶數(shù)據(jù)節(jié)點,負(fù)責(zé)存儲真正的用戶數(shù)據(jù),接收來自Coordinators 的 SQL 請求,處理后返回給 Coordinators。
[0006]現(xiàn)有技術(shù)中,分布式系統(tǒng)的數(shù)據(jù)節(jié)點備份方法需要不斷的重復(fù)備份基礎(chǔ)數(shù)據(jù),操作頻率較大,對備份容量的需求也隨之增大。由于備份容量與還原事件成反比,要獲得較快的還原事件,一般的做法是犧牲備份容量,從而對數(shù)據(jù)庫產(chǎn)生大量的讀請求。相反的,如果降低備份操作頻率,一旦需要還原,則所需時間越長。
【發(fā)明內(nèi)容】
[0007]本發(fā)明為了解決現(xiàn)有技術(shù)中存在的技術(shù)問題,提出了一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性備份方法、分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性還原方法。
[0008]為了達(dá)到上述發(fā)明目的,本發(fā)明所采用的技術(shù)方案是:
一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性備份方法,包括如下步驟:創(chuàng)建ZFS文件系統(tǒng);Standby數(shù)據(jù)庫從需備份的目標(biāo)數(shù)據(jù)節(jié)點中接收實時產(chǎn)生的xlog數(shù)據(jù),根據(jù)xlog數(shù)據(jù)得到Standby數(shù)據(jù)文件;為Standby數(shù)據(jù)庫的Standby數(shù)據(jù)文件所在的ZFS文件系統(tǒng)創(chuàng)建ZFS快照,并存放在ZFS文件系統(tǒng)中。
[0009]上述技術(shù)方案還可以進(jìn)一步完善:
作為優(yōu)選,創(chuàng)建ZFS文件系統(tǒng),具體包括:在備份機(jī)安裝ZFS模塊;在ZFS模塊中創(chuàng)建ZFS文件系統(tǒng)。
[0010]作為優(yōu)選,Standby數(shù)據(jù)庫與需備份的目標(biāo)數(shù)據(jù)節(jié)點--對應(yīng)。
[0011]作為優(yōu)選,倉ll建Standby數(shù)據(jù)庫的步驟,具體包括:在備份機(jī)中創(chuàng)建目標(biāo)數(shù)據(jù)節(jié)點的Standby數(shù)據(jù)庫,Standby數(shù)據(jù)庫的數(shù)據(jù)目錄存放在ZFS文件系統(tǒng)中。
[0012]作為優(yōu)選,上述方法還包括如下步驟:設(shè)定ZFS快照的創(chuàng)建頻率。
[0013]作為優(yōu)選,目標(biāo)數(shù)據(jù)節(jié)點是Coordinator節(jié)點和datanode節(jié)點。
[0014]為達(dá)到上述發(fā)明目的,本發(fā)明所采用的第二個技術(shù)方案是:
一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性還原方法,包括如下步驟:選擇一個barrier作為恢復(fù)目標(biāo);選擇與數(shù)據(jù)節(jié)點對應(yīng)的Standby數(shù)據(jù)庫中恢復(fù)目標(biāo)的前一個ZFS快照,根據(jù)ZFS快照創(chuàng)建一個克隆鏡像,在克隆鏡像中創(chuàng)建恢復(fù)文件,并指定恢復(fù)文件到恢復(fù)目標(biāo);當(dāng)對所有的數(shù)據(jù)節(jié)點執(zhí)行上一步操作后,激活數(shù)據(jù)節(jié)點,還原完成。
[0015]上述技術(shù)方案還可以進(jìn)一步完善:
作為優(yōu)選,創(chuàng)建barrier的步驟,具體包括:判斷設(shè)定的判定條件是否滿足,如滿足則觸發(fā)啟動一次barrier創(chuàng)建;向數(shù)據(jù)節(jié)點提交堵塞未決事務(wù)請求,如果堵塞超時,則釋放未決事務(wù)堵塞并結(jié)束此次barrier創(chuàng)建;如果堵塞未超時,則創(chuàng)建barrier,隨后釋放未決事務(wù)堵塞,結(jié)束此次barrier創(chuàng)建;循環(huán)執(zhí)行上述步驟。
[0016]作為優(yōu)選,克隆鏡像對應(yīng)Standby數(shù)據(jù)庫從需備份的目標(biāo)數(shù)據(jù)節(jié)點中拷貝的增量數(shù)據(jù)。
[0017]作為優(yōu)選,數(shù)據(jù)節(jié)點是Coordinator節(jié)點和datanode節(jié)點。
[0018]由于上述技術(shù)方案的采用,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點:
本發(fā)明的技術(shù)方案,利用流復(fù)制方式創(chuàng)建數(shù)據(jù)節(jié)點的Standby數(shù)據(jù)庫,Standby數(shù)據(jù)庫中僅存儲增量數(shù)據(jù),結(jié)合運用ZFS文件系統(tǒng)創(chuàng)建ZFS快照,達(dá)到了備份Standby數(shù)據(jù)庫與備份數(shù)據(jù)節(jié)點的主數(shù)據(jù)庫相同的效果,但卻無需大量的向主數(shù)據(jù)庫發(fā)起讀請求;
本發(fā)明的技術(shù)方案,通過創(chuàng)建ZFS快照克隆鏡像的方式,僅還原數(shù)據(jù)節(jié)點的增量數(shù)據(jù)部分,如果還原完成后認(rèn)為數(shù)據(jù)節(jié)點還原有誤,則無需將全部備份集重新拷貝,只需上述克隆鏡像重新還原即可,對于一個ITB的備份集來說,采用現(xiàn)有技術(shù)中的還原方法,通過IGB網(wǎng)絡(luò)傳輸需要I萬秒,而是用本發(fā)明的技術(shù)方案,還原事件在I秒之內(nèi)。
[0019]本發(fā)明的其他技術(shù)效果將在【具體實施方式】部分做詳細(xì)的展開說明。
【附圖說明】
[0020]圖1為分布式系統(tǒng)的一種系統(tǒng)框架圖;
圖2是本發(fā)明備份方法的一種系統(tǒng)架構(gòu)框圖;
圖3是本發(fā)明還原方法的一種系統(tǒng)架構(gòu)框圖;
圖4是本發(fā)明的一種barrier創(chuàng)建方法的示意圖。
【具體實施方式】
[0021]下面結(jié)合附圖,對本發(fā)明的【具體實施方式】做進(jìn)一步解釋說明。
[0022]實施例1
如圖2所示的一種分布式數(shù)據(jù)系統(tǒng)數(shù)據(jù)節(jié)點的全局一致性備份方法,包括如下步驟:
1、創(chuàng)建ZFS文件系統(tǒng),具體包括:在備份機(jī)安裝ZFS模塊;在ZFS模塊中創(chuàng)建ZFS文件系統(tǒng); 2、創(chuàng)建Standby數(shù)據(jù)庫,Standby數(shù)據(jù)庫從需備份的目標(biāo)數(shù)據(jù)節(jié)點中接收實時產(chǎn)生的xlog數(shù)據(jù),根據(jù)xlog數(shù)據(jù)得到Standby數(shù)據(jù)文件;standby數(shù)據(jù)文件即是需備份的目標(biāo)數(shù)據(jù)節(jié)點的過去狀態(tài);
3、設(shè)定ZFS快照的創(chuàng)建頻率;
4、為所述的Standby數(shù)據(jù)庫的Standby數(shù)據(jù)文件所在的ZFS文件系統(tǒng)創(chuàng)建ZFS快照,并存放在所述的ZFS文件系統(tǒng)中,創(chuàng)建快照即是達(dá)到備份目標(biāo)數(shù)據(jù)節(jié)點數(shù)據(jù)目錄的目的。
[0023]上述備份方法可以應(yīng)用于分布式數(shù)據(jù)系統(tǒng)的datanode節(jié)點,也可以應(yīng)用在Coordinator節(jié)點上。一種實施例中,Coordinator節(jié)點應(yīng)用上述方法進(jìn)行備份。另一種實施例中,不對Coordinator單獨創(chuàng)建備份機(jī)和Standby數(shù)據(jù)庫。
[0024]為了減少備份對數(shù)據(jù)庫產(chǎn)生的大量讀請求,利用數(shù)據(jù)庫的流復(fù)制,創(chuàng)建Standby數(shù)據(jù)庫,備份Standby數(shù)據(jù)庫的效果和備份主數(shù)據(jù)庫的效果一樣,備份請求與主數(shù)據(jù)庫無關(guān)。將流復(fù)制和ZFS快照結(jié)合,利用ZFS快照來迅速完成任意大小的數(shù)據(jù)庫(datanode和coordinator節(jié)點)的增量備份。
[0025]實施例2
分布式數(shù)據(jù)系統(tǒng)需要面對一致性還原問題,具體來說,所有數(shù)據(jù)節(jié)點必須還原到跨庫事務(wù)一致的狀態(tài),一般來說,這需要對每個數(shù)據(jù)庫提供一個還原點來實現(xiàn)。Barrier可以理解成一個隔離帶,用來隔離一致性事務(wù)的提交交錯狀態(tài),在一個barrier被創(chuàng)建后,事務(wù)的提交信息在xlog日志中的寫入順序是全局一致的,因此,當(dāng)恢復(fù)到創(chuàng)建barrier的時間點時,即可確保全局狀態(tài)一致性的還原(恢復(fù))。
[0026]如圖4所示,創(chuàng)建barrier的步驟,具體包括:判斷設(shè)定的判定條件是否滿足,如滿足則觸發(fā)啟動一次barrier創(chuàng)建;向數(shù)據(jù)節(jié)點提交堵塞未決事務(wù)請求,如果堵塞超時,則釋放未決事務(wù)堵塞并結(jié)