數倉GaussDB(DWS)全量備份總結

      網友投稿 1213 2025-03-31

      數據備份恢復是保護數據安全的重要手段之一。Roach工具支持多種備份恢復類型,例如集群級的物理備份,表級備份的邏輯備份;分別支持DISK/NBU/OBS/EISOO幾種備份介質;支持雙集群間的容災方案等,從而提供數據的可靠性保障機制。


      Roach支持如下功能:

      序號

      功能

      1

      物理備份恢復:全量備份、增量備份

      2

      邏輯備份恢復:單表、多表

      3

      物理備份集恢復到新集群

      4

      備份相關輔助功能:刪除/校驗/查看備份集、取消備份集

      5

      支持的存儲介質:本地DISK、遠端NAS/NBU/OBS/EISOO

      6

      支持的調度方式:命令行、FI、DWS管控面、EISOO界面(僅部分)

      7

      支持的集群形態:主備從、一主多備、小型化

      8

      雙集群容災:同構、異構(僅DISK)

      9

      雙集群遷移:離線遷移

      10

      斷點續做、NBU非侵入式部署等特性(僅部分介質)

      本文將梳理Roach全量恢復的整體流程,描述Roach集群全量備份場景的運轉機制,PITR、增量備份、斷點續做、雙集群、表級備份等功能不做闡述。

      一、簡介

      Roach的集群級備份采用的是物理備份,即通過物理文件拷貝的方式對數據庫進行備份,通過備份的數據文件及日志等文件,數據庫可以進行完全恢復。全量備份則是將當前時間點數據庫中所有的數據進行備份。當然,全備份可以備份整塊硬盤、整個分區或某個具體的目錄。全備份的好處是數據恢復方便,因為所有的數據都在同一個備份中,所以只要恢復全備份,所有的數據都會被恢復。

      其優點是:物理備份速度快,通過合理規劃,可以低成本進行備份和恢復;

      其缺點是:相較于增量備份備份時間較長。

      二、備份架構

      2.1 roach備份全局流程圖

      Roach備份采用生產者-消費者模式,下圖展現了備份流程各個線程及IO交互圖。exec線程作為生產者,同時為減輕exec線程的壓力,增加并行的reader線程讀取小文件;sender線程作為消費者;中間則是通過一個256MB(可設置)的大buffer銜接。

      GaussDB內核的備份組件為GaussRoach.py和gs_roach,需在集群內拉起備份任務。

      2.2 調度流程

      GaussRoach.py:Roach單集群全量備份入口為GaussRoach.py。每次命令行輸入“python GaussRoach.py –t backup…”后,roach的python語言模式就開始運行了。

      任意節點均可作為主節點拉起GaussRoach.py,然后每個節點都啟動gs_roach進程負責本節點備份,各節點并行備份,節點內各DN并行備份。

      2.3 備份具體流程

      2.4 接口調用

      完成數據備份壓縮后,需要將壓縮文件傳送到遠端存儲介質,實現存儲介質與Roach備份流程松耦合,第三方介質不用關注Roach的備份流程,只需要按照接口實現即可完成與Roach的對接。同時Roach流程實現也不必關注底層存儲介質實現,減少了不必要的分支判斷。

      2.5 全量備份的內容

      根據Gauss數據庫的功能結構,全量備份按照以下順序備份所需要的文件:

      數據庫相關的配置文件。

      行存全部數據:GaussDB A數據庫支持行存。

      xlog日志文件:Roach支持在線業務的備份,則通過備份xlog日志文件可在恢復時將備份期間的業務Redo,保證數據一致性。

      列存全部數據: GaussDB A數據庫支持列存。

      備份的數據按照每個節點為單位進行備份,所以每個節點都只存儲當前節點的備份。

      2.6 流程分析

      結合Roach工具備份調度流圖和日志信息分析如下:

      整個備份流程的上層代碼為python代碼,即GaussRoach.py,master進程的創建和agent進程的拉起都是由python側完成的。備份的配置和參數部分檢查過程同樣是由python側代碼完成。各個節點agent進程被拉起之后,C側代碼進行具體的業務操作。C側代碼運行起來之后,可以通過ps ux到gs_roach進程查看進程狀態。

      No.

      Step

      數倉GaussDB(DWS)全量備份總結

      Creating Thread Roach Agent

      RAGENT_EXEC_PREPARING_METADATA come

      Enter the callback of rowstore copy

      performBackup enter

      Start delay ddl recycle before col file copy

      Setting agent state to [AGNET_CREATING_BARRIER]

      RAGENT_EXEC_BACKUP_XLOGFILES come

      Enter the callback of colstore copy

      Stop delay ddl recycle after having copied all col files

      Setting Master state to [PERFORM_BOOKKEEPING_INFO]

      ②:metadata清單即此次備份的文件清單;

      只要沒有走到③ ,備份是沒有開始的;

      備份時的百分比,并不代表時間維度的備份進度,只代表流程進度;

      只要沒有打印出④ ,說明備份還沒有結束,即使進度顯示是100%;

      ⑤:在此參數開啟后,所有的ddl語句會在邏輯上執行,對物理文件的操作不會立即生效;

      ⑥:create barrier之后的數據變化,將通過xlog記錄來備份;

      ⑨:關閉延遲DDL參數后,所有被延遲的對物理文件的操作,將會立即執行;

      2.7 備份集的存儲形式

      備份的數據會進行壓縮后寫入到rch文件后存儲到備份路徑下的實例文件夾下,且每個rch文件大小是4GB;

      存放路徑:[存儲路徑]/roach/backupkey/hostname/,其中存儲路徑為備份命令中指定的--media-destination的值,backupkey為當前備份開始的時間作為標識某個特定的備份集,hostname為當前節點的hostname。內容如下:

      Roach壓縮文件*.rch的內部結構:

      控制備份的元數據,元數據存儲路徑為備份命令中指定的--metadata-destination的值,其路徑下內容如下:

      ini文件中記錄著每次備份的元信息

      {"BackupCount":1,"BackupDetails":[{"S_NO":1,"BackupKey":"20190814_163625","BackupType":"FULL", …….}

      roach文件夾存儲的為特定某個備份的元信息

      2.8 日志回收

      日志是查看代碼運行狀態和錯誤定位的重要文件,Roach內核的回收日志只能保證一個日志回收點:$GAUSSLOG/roach/。

      Roach日志的管理可分為三類:

      agent文件夾保存了內核側生成的日志;

      controller文件夾保存了python側的調度信息;

      frame文件夾保存了雙集群容災過程中python側代碼生成的日志。

      (1)內核日志

      缺省情況下,內核日志僅記錄警告及以上級別的消息。Roach工具支持的日志級別,及默認只有ERROR和Warning級別日志。執行命令可開啟INFO級別日志,

      --logging –logging-level INFO

      如果備份或恢復操作失敗,可查看控制臺中顯示的錯誤匯總,識別發生錯誤的主機。

      (2)系統日志

      Linux記錄系統事件至系統日志中。Roach工具將FATAL及ERROR消息記入相同的系統日志文件。例如,在運行SUSE Linux操作系統的設備上,Roach寫日志到/var/log/messages文件。

      (3)安全日志

      用戶可以保存所有活動信息到文件中。安全日志文件包括時間戳,以及備份,恢復和生成文件的詳細信息。安全日志文件的文件名稱格式如下:roach-agent-security-YYYY-MM-DD_HHMMSS.log。

      (4)控制器日志

      控制器日志為python腳本運行日志,用戶可以保存控制器日志信息到文件中。

      控制器日志文件的格式如下:roach-controller-YYYY-MM-DD_HHMMSS.log。例如:roach-controller-2015-12-15_203415.log

      遇到故障時,結合打屏信息和相應位置的日志文件,可以快速定位到出錯位置,提高解決問題效率。

      三、總結

      備份能解決數據丟失的找回、數據損壞的找回和歷史數據找回等功能,是構建容災方案的基礎,如何快速、有效實現大數據備份功能是這個時代一個非常重要的課題。

      數據倉庫服務 GaussDB(DWS) 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:訂單管理流程(庫存管控,輕松管理
      下一篇:Excel中利用公式生成九九乘法表的操作方法
      相關文章
      久久综合亚洲色HEZYO社区| 亚洲AV无码乱码在线观看富二代 | 亚洲人成网站色在线观看| 亚洲一区免费观看| 亚洲AV无码久久| 久久久亚洲欧洲日产国码农村| 亚洲gv猛男gv无码男同短文| 久久久无码精品亚洲日韩蜜桃| 久久噜噜噜久久亚洲va久| 亚洲av丰满熟妇在线播放| 亚洲国产精品人久久| 久久久无码精品亚洲日韩按摩 | 国产精品亚洲专区一区| 国产精品亚洲精品日韩动图| 婷婷亚洲综合一区二区| 亚洲国产精品成人一区| 亚洲一本大道无码av天堂| 国产亚洲精品国看不卡| 亚洲综合av永久无码精品一区二区 | 亚洲爆乳无码一区二区三区| 亚洲国产精品无码久久久秋霞2| 国产亚洲成AV人片在线观黄桃 | 亚洲码欧美码一区二区三区| 亚洲精品美女久久久久久久| 久久精品亚洲日本波多野结衣| 国产成人亚洲综合a∨| 亚洲人成无码久久电影网站| 伊人久久大香线蕉亚洲五月天| 国产精品亚洲成在人线| 久久精品国产精品亚洲色婷婷 | 亚洲黄色片免费看| 亚洲Av高清一区二区三区| 亚洲成AV人片高潮喷水| 亚洲国产精品成人网址天堂| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产亚洲人成网站观看| 77777_亚洲午夜久久多人| 亚洲va精品中文字幕| 亚洲风情亚Aⅴ在线发布| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产亚洲av片在线观看18女人|