GBase新聞
GBase 8a集群雙活容災(zāi)方案
MPP分析型集群容災(zāi)備份的必要性
容災(zāi)備份要求
MPP分析型集群的容災(zāi)備份在技術(shù)實現(xiàn)上、災(zāi)備級別要求上都與在線生產(chǎn)系統(tǒng)的OLTP事務(wù)數(shù)據(jù)庫有較大差異。如事務(wù)數(shù)據(jù)庫具有完備的WAL(write ahead logging)事務(wù)日志,災(zāi)備可以通過事務(wù)日志實現(xiàn)數(shù)據(jù)庫的備份、雙活復(fù)制、異地容災(zāi)等;MPP分析型數(shù)據(jù)庫為追求大吞吐性能去掉了事務(wù)日志支持,無法采用基于事務(wù)日志的容災(zāi)備份方案。
隨著《“十四五”大數(shù)據(jù)產(chǎn)業(yè)發(fā)展規(guī)劃》發(fā)布,大數(shù)據(jù)日趨成為重要的數(shù)字經(jīng)濟支撐,對承載數(shù)據(jù)倉庫、負(fù)責(zé)高價值密度大數(shù)據(jù)存儲分析的MPP集群進(jìn)行全面的容災(zāi)備份變的格外重要。
在數(shù)據(jù)庫容災(zāi)備份的行業(yè)要求方面,主要還是參照工信部發(fā)布的《GB/T 20988-2007信息安全技術(shù) 信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范》進(jìn)行各行業(yè)、各企業(yè)自己數(shù)據(jù)庫災(zāi)備要求和災(zāi)備等級劃分。
容災(zāi)備份等級
根據(jù)《GB/T 20988-2007信息安全技術(shù) 信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范》對企業(yè)信息系統(tǒng)災(zāi)難備份的技術(shù)等級化為為以下六級:
第6級 數(shù)據(jù)零丟失及遠(yuǎn)程集群支持
第5級 實時數(shù)據(jù)傳輸及完整設(shè)備支持
第4級 電子傳輸及完整設(shè)備支持
第3級 電子傳輸和部分設(shè)備支持
第2級 備用場地支持
第1級 基本支持
每個層級對應(yīng)的系統(tǒng)恢復(fù)時間目標(biāo)(RTO,災(zāi)難發(fā)生后信息系統(tǒng)從停頓到必須恢復(fù)的時間要求)、恢復(fù)點目標(biāo)(RPO,災(zāi)難發(fā)生后數(shù)據(jù)必須恢復(fù)到的時間點要求)有所不同,對應(yīng)的災(zāi)備方案也就不同。如在《銀行業(yè)信息系統(tǒng)災(zāi)難恢復(fù)管理規(guī)范》行業(yè)標(biāo)準(zhǔn)中,災(zāi)備級別與RTO、RPO的對應(yīng)要求如下:
MPP集群數(shù)據(jù)庫的災(zāi)備也遵循上述要求,如某行業(yè)針對承載重要數(shù)據(jù)及業(yè)務(wù)的MPP集群數(shù)據(jù)庫容災(zāi)要求如下:
雙活集群
雙活系統(tǒng)是一種更高等級的容災(zāi),在第4級及以上級別的容災(zāi)等級中,可以通過建立雙活系統(tǒng)的方式滿足數(shù)據(jù)安全、業(yè)務(wù)連續(xù)要求。
MPP分析型數(shù)據(jù)庫不支持事務(wù)日志,無法基于成熟的事務(wù)日志復(fù)制方案建設(shè)雙活集群,所以MPP分析型數(shù)據(jù)庫可采用的雙活集群方案也只有基于數(shù)據(jù)分片冗余存儲(數(shù)據(jù)文件復(fù)制)這一個方式。同一個集群內(nèi)的多個數(shù)據(jù)副本實時同步只適用于同機房的部署,無法滿足跨機房、跨城市的災(zāi)備建設(shè)。為解決異地災(zāi)備,就需要進(jìn)行兩個不同MPP集群間的基于數(shù)據(jù)文件的復(fù)制。
GBase 8a異步雙活集群
GBase 8a的異步雙活集群為Master-Slave主備形式,主集群數(shù)據(jù)可寫,承擔(dān)數(shù)據(jù)統(tǒng)計分析等數(shù)據(jù)加工業(yè)務(wù),完成數(shù)據(jù)加工后將重要的結(jié)果數(shù)據(jù)同步到備份集群,備集群可以分擔(dān)主集群對外業(yè)務(wù)查詢服務(wù),降低主集群讀寫對系統(tǒng)資源的爭搶壓力。
數(shù)據(jù)的同步過程基于集群間同步工具(RSyncTools)實現(xiàn)。RSyncTools同步工具提供了數(shù)據(jù)同步需要的最核心的功能及異常處理,各功能點具有低耦合性,使應(yīng)用程序能夠靈活的調(diào)用接口,實現(xiàn)同城災(zāi)備或者異地災(zāi)備。
異步雙活同步示意圖如下:
1. 同城或異地的兩個機房中,分別搭建同等規(guī)模、同樣數(shù)據(jù)分布的GBase 8a集群;
2. 業(yè)務(wù)應(yīng)用連接主集群(上圖中機房1中的集群)進(jìn)行批量作業(yè)的執(zhí)行;
3. 集群間數(shù)據(jù)同步采用腳本定時調(diào)度的方式或由應(yīng)用調(diào)度程序調(diào)度的方式進(jìn)行調(diào)度執(zhí)行;
上圖所示為應(yīng)用調(diào)度程序在完成一個作業(yè)執(zhí)行后,立即進(jìn)行該作業(yè)涉及結(jié)果表的同步;
腳本定時調(diào)度的方式如每天凌晨5點,在完成日跑批后,由定時任務(wù)調(diào)起數(shù)據(jù)同步任務(wù);
4. 數(shù)據(jù)同步通過執(zhí)行RSyncTools工具完成,RSyncTools同步工具按表進(jìn)行同步,提供同步功能調(diào)用接口,主要傳遞參數(shù)為同步庫名表名、主集群管理節(jié)點IP地址、備集群管理節(jié)點IP等參數(shù)。RsyncTools根據(jù)傳入的庫名表名連接主備集群,查詢同步表元數(shù)據(jù)信息,如發(fā)現(xiàn)元數(shù)據(jù)信息差異則進(jìn)行數(shù)據(jù)文件同步的差量同步。同步過程采用主備集群節(jié)點對節(jié)點的并行方式進(jìn)行,同步的數(shù)據(jù)文件為壓縮態(tài)的數(shù)據(jù)存儲文件。
集群間同步工具具有如下特性:
具備表級粒度增量數(shù)據(jù)同步能力,支持用戶自定義同步任務(wù),可定義優(yōu)先級優(yōu)先同步重要的表數(shù)據(jù)。
具備原子性的特性,即如果一個表在數(shù)據(jù)同步過程中出現(xiàn)故障,集群間同步工具能夠自動回滾,從而保障主備集群的數(shù)據(jù)一致性。
具備增量數(shù)據(jù)捕獲的特性,即自動識別變化數(shù)據(jù)并同步。
具備高效數(shù)據(jù)同步特性,僅同步主副本數(shù)據(jù),從副本數(shù)據(jù)由備份集群內(nèi)部同步實現(xiàn);并且同步時直接使用壓縮態(tài)的二進(jìn)制文件方式,可有效提升同步效率。
5. 機房2中的備份集群,可用于承擔(dān)只讀業(yè)務(wù),實現(xiàn)讀寫分離,即主集群負(fù)責(zé)數(shù)據(jù)的批量統(tǒng)計分析運算,備集群負(fù)責(zé)查詢響應(yīng)。
GBase 8a實時雙活集群
GBase 8a集群V9版本支持虛擬集群,在虛擬集群中將兩個同樣規(guī)模和數(shù)據(jù)分布策略的子集群之間建立鏡像關(guān)系,就稱為鏡像集群。顧名思義,兩個鏡像集群中的表和數(shù)據(jù)是一致的。
鏡像集群實現(xiàn)了計算集群的實時雙活,可以支持同城的實時雙活場景。雙活示意圖如下:
1. 在GBase 8a V9虛擬集群的兩個同樣規(guī)模和配置子集群之間,建立鏡像關(guān)系,鏡像關(guān)系可以按表進(jìn)行創(chuàng)建,也可以按照數(shù)據(jù)庫進(jìn)行創(chuàng)建;
2. 虛擬集群中互為鏡像的兩個子集群可以部署在同機房內(nèi),也可以部署在同城的不同機房內(nèi),對兩個子集群之間的網(wǎng)絡(luò)質(zhì)量和網(wǎng)絡(luò)帶寬有一定要求;當(dāng)兩個子集群位于不同機房時,就形成了同城異地的災(zāi)備;在同城異地部署中,可以在備份機房中部署1個coordinator節(jié)點,實現(xiàn)管理集群的數(shù)據(jù)災(zāi)備;
3. 業(yè)務(wù)直接連接其中的一個子集群進(jìn)行操作,下發(fā)DDL、DML、DQL等SQL語句,對于DDL,將同時下發(fā)到互為鏡像的兩個集群中執(zhí)行;對于DML、DQL操作則直接下發(fā)到當(dāng)前應(yīng)用的默認(rèn)子集群中執(zhí)行,DML的執(zhí)行結(jié)果采用鏈?zhǔn)睫D(zhuǎn)發(fā)方式傳輸?shù)搅硪粋€子集群中;鏡像集群中的數(shù)據(jù)修改操作,需要在兩個子集群中統(tǒng)一提交后才返回執(zhí)行結(jié)果給用戶;
4. 如果計算集群發(fā)生故障,通過修改業(yè)務(wù)的默認(rèn)子集群,即可完成集群業(yè)務(wù)切換,如上圖中的VC1集群和VC2集群為鏡像集群關(guān)系,業(yè)務(wù)默認(rèn)直接在VC1上執(zhí)行,當(dāng)VC1發(fā)生整體故障后,修改業(yè)務(wù)默認(rèn)連接VC2即可實現(xiàn)業(yè)務(wù)在VC2上執(zhí)行;
5. 如果管理集群在主機房中的所有節(jié)點發(fā)送故障,需要人工修改集群管理節(jié)點的配置為備份機房中的管理節(jié)點為管理集群的唯一節(jié)點后,業(yè)務(wù)就可通過備份機房中的管理節(jié)點下發(fā)SQL任務(wù)。
GBase 8a兩地三中心災(zāi)備方案
對容災(zāi)備份要求更高的場景,可以結(jié)合GBase 8a集群的異步雙活、實時雙活,增加數(shù)據(jù)備份的保障。如在已經(jīng)建立了異步雙活集群的環(huán)境下,每天在進(jìn)行主備集群同步的同時,在主集群上進(jìn)行數(shù)據(jù)的周期備份,如每周進(jìn)行一次全備份,每天進(jìn)行一次增量備份。此外,還可以結(jié)合GBase 8a集群的異步雙活和實時雙活,形成兩地三中心的災(zāi)備方案,如下:
主數(shù)據(jù)中心通過虛擬集群的鏡像技術(shù)實現(xiàn)了同一個數(shù)據(jù)中心內(nèi)兩個虛擬子集群間實時同步的強一致雙活;
備數(shù)據(jù)中心和主數(shù)據(jù)中心間通過集群間同步工具實現(xiàn)了異步方式數(shù)據(jù)同步的準(zhǔn)實時的雙活容災(zāi)。
GBase 8a異步雙活集群與實時雙活集群的差異
GBase 8a集群異步雙活和實時雙活有如下差異: