主頁 > 資料庫 > 詳解集群級備份恢復:物理細粒度備份恢復

詳解集群級備份恢復:物理細粒度備份恢復

2023-05-13 09:22:35 資料庫

摘要:在實際使用程序中,資料庫集群級的故障并非高概率事件,如何安全高效地幫助客戶備份恢復一部分資料庫元素,才是更加實際的需求,這也是細粒度備份恢復的意義所在,

本文分享自華為云社區《GaussDB(DWS)之物理細粒度備份恢復》,作者:我的橘子呢 ,

1. 認識物理細粒度備份恢復

相對于集群級備份恢復海量的檔案備份恢復操作,物理細粒度備份能夠從更小的粒度、以更少的資料檔案操作,對單庫、單表進行備份與恢復,在實際使用程序中,資料庫集群級的故障并非高概率事件,如何安全高效地幫助客戶備份恢復一部分資料庫元素,如schema或部分表,才是更加實際的需求,這也是細粒度備份恢復的意義所在,
物理細粒度備份以小粒度如database級、schema級、表級等為單位,對資料庫檔案進行物理備份,由于相對于集群級粒度更小,因此也更加高效實用,目前Roach工具支持的物理細粒度備份恢復功能主要包括:schema級全量備份、schema級增量備份、從細粒度備份集恢復單表/多表、從集群級備份集(帶細粒度引數)恢復單表或多表,這些功能基本上滿足了實際使用程序中對細粒度備份恢復的要求,物理細粒度備份恢復功能圖如圖1所示,

圖1 細粒度備份恢復功能示意圖

2. 了解物理細粒度備份

物理細粒度的備份能力是從Roach的基線版本繼承而來的,大部分沿用了集群級備份的設計思路,即基本的備份流程是備份行存檔案,創建一致性點,備份xlog、clog等檔案,最后備份列存檔案,物理細粒度備份在此基礎上需要進一步考慮以下幾個問題,

2.1 備份的資料內容

給定對應粒度備份任務如一張表,如何在備份最少資料的情況下保證恢復該表時資料的完整性?考慮該問題需要同時從備份資料小和資料完整性兩個方面考慮,備份資料量最小最理想的情況是只備份資料庫中該表以及相關表對應的物理檔案,同時不考慮資料的拷貝檔案,也就是只備份節點中主DN對應的資料檔案,然而從資料的完整性角度來說,只備份表對應的物理檔案是不夠的,為了保證恢復階段能恢復到一致性點,需要依賴xlog、clog等日志檔案,而這些檔案不能以更小的粒度劃分,因此需要全部備份,圖2列出了細粒度備份在保證資料完整性的情況下所必須備份的檔案示意圖,

圖2 物理細粒度備份資料內容示意圖

2.2 備份集的存盤結構

現階段集群級備份時會將資料檔案和組態檔等壓縮進同一個備份的rch檔案中,在恢復單表時需要一起獲取回來并過濾,邏輯較為混亂,因此,為了恢復時能夠更精確地獲取檔案,細粒度備份對資料備份結構進行了進一步改造,將不同型別的檔案存盤在不同的rch檔案中,以更小的粒度對存盤結構進行了劃分,如圖3所示,行列存相關的檔案存盤在data目錄下,以database為單位進行了劃分,每個database目錄下存在row目錄和col目錄,分別對應存盤行存檔案和列存檔案,archive檔案夾保存xlog相關檔案,xact檔案存盤clog相關檔案,gloabal檔案夾保存資料目錄下其他檔案,

圖3 物理細粒度備份存盤結構示意圖

2.3 備份資料相關檔案的組織形式

考慮這樣一個問題,當備份一張表時,除了備份這張表本身對應的資料檔案,我們還應該備份與這張表關聯的一些輔助表,比如列存表的cudesc表、存在變長欄位對應的toast表等,只有這樣才能保證恢復后這張表的可用性,那么備份的時候怎么知道該表存在哪些關聯表呢?細粒度備份采用Map檔案對表關系進行組織,對表所有的關聯表及檔案進行統一收集記錄,該資訊對于細粒度備份恢復至關重要,主要有以下兩個方面的作用:

(1)備份時:得到一張表的Map資訊,在備份行列存檔案時,按照Map中記錄的資訊,將表需要備份的相關檔案加入到需要備份的file_list中,后續備份時就可以按照該file_list進行檔案的備份,省去了檔案的掃描動作,
(2)恢復時:恢復時根據Map資訊,得到目標表相關的檔案記錄,就可以對應獲取所需的資料檔案,并根據表的元資訊建立恢復時的路徑映射關系,

Map檔案的生成是在備份行存檔案之前,各節點以主DN個數為單位,并行獲取Map資訊,分別生成自己的Map檔案,Map資訊的獲取,需要從多個level進行:

Agent –> Instance –> Database –> Schema –>Table –> RelatedRelations

在得到各表對應的Map資訊后,會按照一定的格式框架組織多層的json格式,并將對應的json資訊以schema為單位寫入到schemaname.map中,最終持久化存盤到介質下元資料目錄對應的節點級根路徑中:

/roach/backup_key/map/dn_6001_6002/databasename/schemaname.map

Map檔案對應的json存盤內容如圖4所示,

圖4 Map檔案Json格式

2.4 備份壓縮檔案與資料檔案的映射關系

考慮細粒度恢復一張表時,如何在備份集大量的rch壓縮檔案中挑選出我們想要的表在哪些rch檔案里,細粒度備份恢復在備份程序中會生成額外的fine_file_list資訊,每張rch檔案都有一個fine_file_list檔案與之相對應,該fine_file_list檔案記錄了對應rch檔案中保存了哪些表,在恢復時就可以根據fine_file_list找到待恢復表涉及哪些rch檔案,精準獲取必要的rch檔案,這樣就可以大幅提升細粒度恢復的性能,

只有行列存資料的rch檔案存在對應的fine_file_list檔案,fine_file_list保存在節點元資訊目錄下對應的檔案夾中:

/roach/backup_key/fine_file_list/dn_6001_6002/row/file_0_fine_list
/roach/backup_key/fine_file_list/dn_6001_6002/col/file_0_fine_list

2.5 備份表定義匯出檔案

細粒度恢復是在線進行的,在進行單表或多表恢復時需要創建出與原表定義相同的表,再進行表物理檔案的替換,這就必須知道原表的DDL元資訊,因此,在備份程序中需要同時匯出各個表的DDL元資訊,物理細粒度備份恢復利用的GaussDB(DWS)自帶的gs_dump工具對表定義進行匯出,由于該資訊只用于恢復程序,因此在細粒度備份剛開始時會啟動gs_dump去匯出所有的表的DDL信息,并讓備份程序與DDL匯出并行,不需要阻塞等待,減少整體物理細粒度的備份時間,DDL匯出流程如圖5所示,

圖5 匯出DDL流程圖

匯出的DDL資訊以schema為單位存盤在節點元資訊目錄下對應的檔案夾中:

/roach/backup_key/dumped_ddl/databasename.schemaname

2.6 物理細粒度備份整體流程

經過以上介紹,細粒度備份的關鍵步驟都已經清楚了,下面給出細粒度備份的整體流程圖,如圖6所示,

圖6 物理細粒度備份流程圖

3. 了解物理細粒度恢復

與集群級恢復停止集群進行資料覆寫的方式不同,細粒度恢復采用在線恢復的方式,該方法的核心思想就是在當前集群中創建與原表定義完全相同的目標表,再將兩張表相關的物理檔案進行一一替換,細粒度恢復的方法能夠在線進行,對現有集群影響較小,但同時也對恢復程序資料的控制有了更高的要求,

物理細粒度恢復的大致流程如圖7所示,

圖7 物理細粒度恢復流程圖

4. 使用物理細粒度備份恢復

GaussDB(DWS)的Roach工具現階段支持schema級的物理細粒度備份,下面介紹如何發起物理細粒度備份以及如何從細粒度備份集中恢復一張表,

4.1 獲取物理細粒度備份集

Roach工具現支持schema級的細粒度備份,如下為命令列中發起schema級物理細粒度備份的命令:

圖8 發起schema級備份

以下引數為必選引數:

  • –master-port : 行程埠號
  • –media-type : 存盤介質
  • –media-destination : 壓縮資料存盤路徑
  • –metadata-destination : 元資料存盤路徑
  • –dbname : 資料庫名稱
  • –schema-list : 多schema清單檔案名,內容格式為每行一個schema名
  • –physical-fine-grained : 物理細粒度引數

其中指定schema清單時如果只有一個schema,也可以直接使用–schemaname引數直接指定需要備份的schema名稱,此外,同時備份多個schema時,schema需要在同一個database下,

除了schema級別備份,為支持從集群級備份集中細粒度恢復單表或多表,可以通過在集群級命令中加入物理細粒度引數:–physical-fine-grained來生成細粒度恢復需要的Map檔案、fine_file_list資訊,如下為集群級帶細粒度引數的命令:

圖9 集群級備份帶細粒度引數

需要說明的是,帶細粒度引數的集群級備份依然是集群級的,只是為支持從該備份集細粒度恢復單表生成了額外的細粒度相關檔案,

4.2 從物理細粒度備份集恢復表

Roach工具現支持從細粒度備份集或(集群級帶細粒度引數備份集)恢復單表或多表,假如當前資料庫用戶不小心洗掉了一張表,又不想對停止業務對整個集群進行恢復,如果之前做過物理細粒度相關備份,備份集中有這張表,那么細粒度恢復就是最好的選擇,細粒度恢復可以在線進行,不影響集群的正常使用,發起細粒度恢復的命令如下:

圖10 細粒度恢復表命令

以下引數為必選引數:

  • –clean
  • –master-port
  • –media-type
  • –media-destination
  • –metadata-destination
  • –backup-key : 恢復基于的備份集
  • –physical-fine-grained : 物理細粒度引數
  • –dbname : 資料庫名稱
  • –table-list : 待恢復表串列,格式為schemaname.tablename
  • –restore-target-list : 恢復后表串列,格式為schemaname.tablename

其中–table-list指定了需要恢復的哪些表,–restore-target-list指定了恢復后表的名稱,要求–restore-target-list的表順序與–table-list的表順序一一對應,如果要全部恢復到原表,則這兩個表清單可以指向相同檔案,兩個表清單引數對應的檔案內容格式是:每個表一行,且必須帶schema名,

5. 總結

細粒度備份和恢復以更小的粒度對資料檔案進行了備份恢復操作,考慮到備份資料的完整性以及備份恢復的性能,細粒度備份程序增加了ddl匯出、Map檔案生成等關鍵步驟,其中從資料目錄下的物理檔案資訊到Map資訊、再從Map資訊到備份的rch檔案對應的fine_file_list資訊,形成了對備份資料檔案連續的記錄鏈條,恢復程序中如果出現缺少資料的情況,可以通過對備份程序中以上所說資訊的互相對比快速定位到出現問題的環節,因此,掌握以上資訊十分關鍵,可以幫助我們更好地使用細粒度備份恢復功能,

 

點擊關注,第一時間了解華為云新鮮技術~

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/552364.html

標籤:其它

上一篇:MySQL8.0環境搭建

下一篇:返回列表

標籤雲
其他(158969) Python(38129) JavaScript(25420) Java(18034) C(15226) 區塊鏈(8265) C#(7972) AI(7469) 爪哇(7425) MySQL(7181) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5339) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4572) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1972) 功能(1967) Web開發(1951) HtmlCss(1936) python-3.x(1918) C++(1915) 弹簧靴(1913) xml(1889) PostgreSQL(1875) .NETCore(1860) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • 詳解集群級備份恢復:物理細粒度備份恢復

    摘要:在實際使用程序中,資料庫集群級的故障并非高概率事件,如何安全高效地幫助客戶備份恢復一部分資料庫元素,才是更加實際的需求,這也是細粒度備份恢復的意義所在。 本文分享自華為云社區《GaussDB(DWS)之物理細粒度備份恢復》,作者:我的橘子呢 。 1. 認識物理細粒度備份恢復 相對于集群級備份恢 ......

    uj5u.com 2023-05-13 09:22:35 more
  • MySQL8.0環境搭建

    1. MySQL的卸載 步驟1:停止MySQL服務 在卸載之前,先停止MySQL8.0的服務。按鍵盤上的“Ctrl + Alt + Delete”組合鍵,打開“任務管理器”對話 框,可以在“服務”串列找到“MySQL8.0”的服務,如果現在“正在運行”狀態,可以右鍵單擊服務,選擇“停 止”選項停止M ......

    uj5u.com 2023-05-13 09:14:46 more
  • 事務四大特性

    ACID :如果一個資料庫支持事務的操作,那么該資料庫必須要具備以下四個特性 1、原子性(Atomicity) 事務包含的所有操作要么全部成功,要么全部失敗回滾,因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響 2、一致性(Consistency) 事務必須使資料 ......

    uj5u.com 2023-05-13 09:08:04 more
  • 袋鼠云產品功能更新報告05期|應有盡“優”,數堆疊一大波功能優化升

    這段時間,我們對產品本身以及客戶反饋的一些問題進行了持續的更新和優化,包括對離線平臺資料同步功能的更新,資料資產平臺血緣問題的優化等,力求滿足不同行業用戶的更多需求,為用戶帶來極致的產品使用體驗。 以下為袋鼠云產品功能更新報告第五期內容,更多探索,請繼續閱讀。 離線開發平臺 1.支持作業流引數 背景 ......

    uj5u.com 2023-05-13 09:01:30 more
  • MySQL好玩新特性:離線模式

    GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者:Yejinrong/葉金榮 文章來源:GreatSQL社區原創 繼續吹MySQL 8.0~ 在以前,當需要對MySQL資料庫進行維護操作時,通常需 ......

    uj5u.com 2023-05-12 10:40:25 more
  • 資料庫定時備份linux篇

    (資料庫定時備份linux篇) 1 序言 相信大家都還記得這則新聞吧,歐洲云計算巨頭 OVH 位于法國斯特拉斯堡的機房發生嚴重火災,大火徹底摧毀了五層高、占地 500 平方米的 SBG2 資料中心。 當地報紙稱 115 位消防員投入 6 個小時才將其撲滅。經過長達 6 個小時的持續燃燒,SBG2 內 ......

    uj5u.com 2023-05-12 10:40:11 more
  • 通過空間占用和執行計劃了解SQL Server的行存盤索引

    1 索引介紹 索引是一種幫助查詢陳述句能夠快速定位到資料的一種技術。索引的存盤方式有行存盤索引、列存盤索引和記憶體優化三種存盤方式: 行存盤索引,使用B+樹結構,行存盤指的是資料存盤格式為堆、聚集索引和記憶體優化表的表,用于OLTP場景。行存盤索引按順序排列的值串列,每個值都有指向其所在的資料頁面的指標。 ......

    uj5u.com 2023-05-12 10:38:29 more
  • 資料庫定時備份winserver2012篇

    (資料庫定時備份winserver2012篇) 1 序言 資料是無價的,所以生產環境中定時備份資料庫顯得尤為重要。備份能防止服務器故障、天災人禍和人為誤操作帶來的資料丟失。 上一篇文章我們說了Linux環境下的資料備份。這一篇就把之前留下的坑給填上了。 這一篇我們說一說winserver2012環境 ......

    uj5u.com 2023-05-12 10:38:04 more
  • MySQL外鍵約束和多表查詢

    外鍵約束和多表查詢 一、外鍵是什么 圖解 知識點 外鍵: 多個表之間的關聯欄位 特點1: 從表外鍵的值是對主表主鍵的參考。 特點2: 從表外鍵型別,必須與主表主鍵型別一致。 主從表: 外鍵欄位所在的表是從表,依賴欄位對應的表是主表 多表關系: 一對一 一對多 多對多 一對多關系: 主表是一方 從表是 ......

    uj5u.com 2023-05-12 10:37:49 more
  • 資料治理三大模式詳解,治理新范式釋放資料潛能

    隨著世界經濟由工業經濟向數字經濟轉型,資料逐步成為關鍵的生產要素,企業開始將資料作為一種戰略資產進行管理。資料從業務中產生,在IT系統中承載,要對資料進行有效治理,需要業務充分參與,IT系統確保遵從,這是一個非常復雜的系統工程。 資料治理架構 實踐證明,企業只有構筑一套企業級的資料治理綜合體系,明確 ......

    uj5u.com 2023-05-12 10:37:28 more