1.備份到二級資料庫
從資料的生成和管理角度,企業資料可以分為一級和二級資料兩類。其中一級資料是系統直接生成的資料,例如存儲線上訂單的資料庫。二級資料的内容來源于一級資料,可能是一級資料的簡單複制(例如訂單資料庫的一個備份副本),也可能是在一級資料的基礎上發生格式或内容的變化(例如基于線上訂單資料生成的商業分析資料庫)。業界通常認為,從資料量看一級資料僅僅是企業需要維護資料“冰山一角”,Gartner報告指出二級資料的資料量達到一級資料的20倍。
通常企業核心的一級資料都使用資料庫存儲(本文稱為線上庫),而資料庫的備份則是最常見的二級資料。大部分時候,備份資料量會遠大于線上庫的資料量。傳統的備份系統中,這些備份資料會長期占用存儲資源,但僅僅在容災場景下才會使用,也就意味着為備份資料付出的成本很高,但大部分時候無法獲得收益。另一方面,如果備份資料隻能通過恢複(覆寫)到線上庫才能被使用,那麼企業使用備份資料本身就變成了一個具有很高風險的操作。

現代備份系統,通常會給使用者将備份資料恢複到非生産資料庫的解決方案,我們稱之為二級資料庫。顯然二級資料庫也成為了使用者的二級資料的一部分。使用者可以将二級資料庫用于許多場景,舉例來說:
• 開發測試:許多企業的內建測試,依賴真實的線上資料内容和資料量。那麼使用備份資料産生的新資料庫,可以滿足這一需求,并且對線上生産庫沒有影響。
• 應急容災:與傳統的恢複到生産庫方案不同,生産新的應急容災庫的使用方法更加靈活。既可以在生産庫故障期間作為生産庫的臨時替代(故障結束後切換回生産庫),也可以在生産庫出現髒資料時作為資料訂正的參照對象。
• 曆史分析:如果要分析過去某個時間點的資料,那麼查詢從曆史備份資料産生的新資料庫,是最合理的方案。
2. 拷貝和管理資料帶來的困難
前面所述盤活二級資料的方案,從解決方案的角度是成立的,但實施起來面臨着許多技術困難。
• 資料拷貝的資源成本:1)同一個備份資料産生可能産生多個二級資料庫,這些資料庫之間資料完全重複,産生多倍的存儲成本,以及資料拷貝産生的帶寬成本,2)不同備份集之間也存在大量重複資料,例如線上訂單庫的一次備份可能相比前一天的備份,隻有1%記錄發生變化,剩餘大量的記錄是不變的,然而新增的存儲成本則是生産庫的100%。
• 資料拷貝的時間成本:即使使用者不在意存儲和帶寬成本,拷貝資料本身仍然受限于實體裝置的IO吞吐限制。例如當生産庫的容量達到1TB,拷貝資料的最大吞吐是100MB每秒,需要3個多小時才能完成一個二級資料庫所需的資料拷貝。然而前面提到的幾個典型二級資料庫應用場景,都希望資料準備時間(類似備份領域的RTO概念)盡可能低。特别是應急容災場景,高于秒級級别的準備時間,一般是不能接受的。
• 資源管理挑戰:一般企業使用者通常不具備雲服務彈性資源管理能力,對于二級資料庫應用場景,需要提前準備軟硬體資源,包括主機、系統、軟體和網絡等配置,無法按需彈性的付出的硬體和人力資源成本。
• 資料管理挑戰:1)新産生的二級資料庫也需要管理,例如權限管理、性能監控、背景運維。然而現有的大部分資料庫管理系統和人員(如DBA),并沒有準備好管理為二級資料庫。2)在一些特殊情況下,二級資料庫還需要對原始資料加工後才能使用,例如生産庫中的敏感資料,在提供給測試或分析系統前,需要對資料進行脫敏處理。
以上的各種技術問題,使得備份資料到二級資料庫的實際實施難度非常高,大部分企業使用者都隻能望而卻步。阿裡雲資料庫備份産品DBS,運用了業界領先的CDM(Copy Data Management)技術,提供了完全克服以上技術困難的整體解決方案——DBS沙箱,幫助使用者全面激活從備份資料到二級資料庫業務生态。
3. 阿裡雲DBS沙箱技術
CDM是備份技術領域近幾年備受關注的技術方向。業界對于CDM的定義各有一些不同,在資料庫領域,我們認為CDM是多項技術組合而成的解決方案,目的是幫助使用者更快速、低成本的儲存和使用資料庫備份資料,具體來說就是解決前面所述的備份資料到二級資料庫各項技術困難。
3.1 實體備份技術
實體備份技術,是DBS沙箱技術的前提。相比邏輯備份技術,實體備份不需要解析資料庫中的内容,而是直接拷貝資料庫的檔案,是以相比邏輯備份,占用的計算、存儲、帶寬資源更少。實體備份技術的主要難點在于,不幹擾線上庫的正常讀寫前提下,實作對資料庫檔案PIT(Point-in-Time)拷貝。舉個例子,如果在不鎖表情況下,一遍拷貝MySQL資料檔案,一遍對MySQL寫入資料,最後拷貝完成的資料檔案很有可能是錯誤的,因為這個檔案先拷貝的部分與後拷貝的部分,并不屬于同一個時刻。實際上,資料庫實體檔案的PIT拷貝,是資料庫專業備份軟體的核心技術門檻之一,不同類型的資料庫的具體技術方案完全不同。DBS的實體備份功能,支援對主流的MySQL、Oracle、SQLServer、MongoDB等資料庫。
進一步,我們将對資料庫實體檔案的PIT拷貝稱作實體全量備份,另一種稱為實體增量備份的技術,僅拷貝從上一次備份時間點到目前備份時間點的增量變化,進而大幅降低産生新的備份集的帶寬和存儲開銷。最理想情況下,僅需要第一次采用實體全量備份,後續每次備份都可以采用實體增量。要實作這個目标,需要克服以下兩個技術難點:
• 增量資料不能獨立存在,它在恢複時,必須與全量可以合并為新的全量資料。如果選擇在使用者端實作全量與增量的合并,那麼會消耗大量使用者資源,以及使得RTO大幅增加。是以更友好的解決方案是,在恢複前,服務端完成全量與增量的合并。
• 如何提取資料庫增量變化的資料,業界稱為資料庫CBT(Changed Block Tracking)技術,這同樣是專業資料庫備份産品的核心技術門檻之一。DBS同樣對主流的MySQL、Oracle、SQLServer資料庫都支援了CBT能力。
關于阿裡雲DBS産品針對各種主流資料庫,如何實作實體全量和增量備份,由于技術點十分繁雜,并且不是本文介紹沙箱功能的核心技術點,本文暫不展開論述。另外DBS的實體備份功能,還結合了傳輸層的源端重删和壓縮技術,進一步降低備份帶寬開銷。
3.2 存儲虛拟化技術
存儲虛拟化技術,是解決備份資料到二級資料庫的拷貝問題的關鍵技術,也是業界各種CDM解決方案必不可少的技術點。秒級快照和克隆,是存儲虛拟化技術的核心能力。将存儲虛拟化技術運用到資料庫備份,分為2個階段:
• 生成隻讀快照:對于同一個生産庫産生的不同時間的備份集,使用存儲虛拟化技術的備份系統,不再将這些備份集區分在不同檔案路徑存儲,而是按時間覆寫備份資料,每當完成新資料的寫入覆寫,則建立一個新的快照。産生新的快照并寫入資料,不會觸發資料拷貝,是以新舊快照之間的重複資料是共享的。
• 生成可寫克隆:當備份系統需要從一個備份集恢複資料時,需要選擇一個快照,然後建立基于該快照的克隆。克隆是可寫的,對克隆的寫入不會影響已建立的快照資料,也不會影響其他克隆的資料。
業界領先的存儲系統實作快照和克隆能力,主要的理論基礎都是CoW(Copy-on-Write)和RoW(Redirect-on-Write),這兩種設計各有利弊,工業界也有不少對這兩項技術的改進實作,本文不展開論述。阿裡雲DBS産品針對不同的場景,綜合采用了CoW和RoW兩種的存儲解決方案。
技術點 | RTO | RPO | 資源 |
---|---|---|---|
邏輯全量 | 小時級 | 天級 | 高 |
邏輯全量+邏輯日志 | 秒級 | ||
實體全量 | 中 | ||
實體全量+實體增量 | 低 | ||
實體全量+實體增量+邏輯日志 | |||
實體全量+實體增量+邏輯日志+存儲虛拟化(DBS解決方案) |
3.3 雲原生沙箱執行個體
在秒級生成備份資料克隆的基礎上,阿裡雲DBS産品還進一步提供了二級資料庫執行個體托管功能——DBS沙箱執行個體。目前DBS支援為MySQL資料庫(包括阿裡雲RDS)建立沙箱執行個體,未來将進一步支援Oracle、SQL Server和MongoDB。對無論資料源來自RDS、ECS自建,還是線下環境,隻要通過DBS備份到雲端,都可以按使用者需要在DBS雲端建立沙箱執行個體。該執行個體是DBS雲服務的一部分,使用者不需要操心的資源彈性排程和高可用問題。
除了生成沙箱執行個體,DBS還為使用者考慮了管理資料庫的需求
• 資料管理:DBS沙箱功能對接了阿裡雲資料管理服務DMS。DMS是一種集資料管理、結構管理、使用者授權、安全審計、資料趨勢、資料追蹤、BI圖表、性能與優化和伺服器管理于一體的資料管理服務。DBS沙箱功能建立的DMS任務,預設使用DMS免費版功能,使用者可在DMS控制台自行配置其它付費功能。
• 監控管理:DBS沙箱功能對接了阿裡雲資料庫自治服務DAS。DAS是一種基于機器學習和專家經驗實作資料庫自感覺、自修複、自優化、自運維及自安全的雲服務,幫助使用者消除資料庫管理的複雜性及人工操作引發的服務故障,有效保障資料庫服務的穩定、安全及高效。DBS沙箱功能建立的DAS任務,預設使用DAS免費版功能,使用者可在DAS控制台自行配置其它付費功能。
4. 定制您的DBS沙箱解決方案
無論您的資料庫部署在哪裡,DBS的備份和沙箱功能都提供了對應的接入方案:
• ECS上的自建資料庫(建立DBS實體備份)
• 線下資料庫(建立專線和DBS實體備份)
• RDS資料庫(通過DBS控制台導入)
目前已經多個知名企業參與了DBS沙箱功能的内測,覆寫了以上各種接入類型。目前沙箱功能内測已經進行了7個月,我們已經在國内多個地域,包括北京、上海、杭州、深圳等正式釋出沙箱功能,未來會釋出到包括海外站在内的更多阿裡雲站點。
DBS沙箱功能提供了非常靈活的售賣模式,包括免費試用、付費商用兩種模式。其中免費模式預設有一定的限制,例如存儲容量不超過100G,以及單個備份計劃的沙箱執行個體個數不超過1個等。使用者完全可以先從免費試用模式開始,探索DBS沙箱功能帶來的二級資料各種可能的業務玩法。付費模式的計費項,包含存儲計費和執行個體計費2項(類似阿裡雲ECS産品的執行個體,包含按雲盤容量計費,以及ECS執行個體規格計費),這兩項計費項都是按照使用時長按量計算,未來也會推出預付費的資源包,具體單價近日将正式公布。
這裡我們定義一個典型DBS使用者,估算其開啟沙箱功能前後的成本。
• 采購DBS middem規格執行個體(單價224元/月)
• 每天産生全量備份集,每個備份集資料量為100G,保留最近3個月的備份資料(單價0.12元/GB月)
參考DBS的按量付費單價(暫不考慮存儲資源包和資料壓縮對存儲費用的影響),那麼該使用者的初始成本為
244元/月 + 0.12元/GB月100GB/份3月*30份/月 = 1304元/月
回顧本文第一段提到的各種二級資料應用場景:開發測試、應急容災、曆史分析,使用者通常不需要為所有的曆史備份資料集建立快照。DBS支援為沙箱功能設定獨立的生命周期管理政策
• 最近1天的備份資料作為沙箱存儲(參考單價1元/GB月)
• 每個月發生一次應急容災,每次需要建立一個中等規格的沙箱執行個體,持續12小時(參考單價0.395元/天)
使用者開啟沙箱功能的新增成本為
150GB1元/月+0.5天/月*0.395元/天 = 50.2元/月
也就是說對于這個典型使用者,開啟DBS沙箱功能後,付出的額外成本僅相當于原有備份成本的3.8%,而獲得的收益則是在原有的備份恢複能力基礎上,使得線上資料庫具備了秒級容災能力(成功抵抗每月12小時的生産庫的高故障率)。需要注意,截止本文發稿,DBS沙箱執行個體計費單價還未正式公布,是以以上參考單價僅作為參考,真實價格請以阿裡雲官網釋出的價格為準。
5. 如何快速入門,免費試用沙箱功能?
DBS沙箱功能,可以讓您從目标備份集快速建立新的資料庫執行個體,讓您的備份資料秒級可用。多個沙箱執行個體之間的讀寫不會互相影響,也不會影響原資料庫。
如需了解如何快速掌握建立、免費試用DBS沙箱的操作,請點選:
https://help.aliyun.com/document_detail/185577.html直播預告
11月18日 14:00-15:00
邀您一起見證
雲原生資料庫備份DBS新版本釋出
掃描下圖二維碼或點選:
https://yqh.aliyun.com/live/detail/21077預約觀看直播釋出會