目錄
前言
備份和恢復概述
并行備份
非并行備份
需求和限制
前言
????????定期執(zhí)行備份能確保在數(shù)據(jù)損壞或者系統(tǒng)失效發(fā)生時能恢復數(shù)據(jù)或者重建數(shù)據(jù)庫系統(tǒng)。用戶還可以使用備份從一個數(shù)據(jù)庫系統(tǒng)遷移數(shù)據(jù)到另一個數(shù)據(jù)庫系統(tǒng)。
備份和恢復概述
????????數(shù)據(jù)庫支持并行和非并行的方法來備份和恢復數(shù)據(jù)庫。 并行操作的規(guī)模不受系統(tǒng)中實例數(shù)量的影響,因為每臺主機都同時把其數(shù)據(jù)寫入到本地的磁盤存儲上。 如果使用非并行備份和恢復操作,數(shù)據(jù)必須通過網(wǎng)絡從實例被發(fā)送到master,后者把所有的數(shù)據(jù)寫入它的存儲中。除了把I/O限制在一臺主機上之外,非并行備份要求master擁有足夠的本地磁盤存儲以保存整個數(shù)據(jù)庫。
并行備份
????????gpbackup和gprestore是數(shù)據(jù)庫的備份和恢復工具。 gpbackup在每個獨立的表級別使用ACCESS SHARE鎖,而不是在pg_class表里加EXCLUSIVE鎖。 這使得你可以在備份期間執(zhí)行DML語句, 如CREATE,ALTER,DROP和TRUNCATE操作,只要這些操作沒有執(zhí)行在備份的數(shù)據(jù)上。默認情況下,gpbackup僅在數(shù)據(jù)庫master數(shù)據(jù)目錄中存儲備份的對象元數(shù)據(jù)文件和DDL文件。數(shù)據(jù)庫節(jié)點使用COPY ... ON SEGMENT命令將備份表的數(shù)據(jù)存儲在位于每個節(jié)點的backups目錄中的壓縮CSV數(shù)據(jù)文件中。元數(shù)據(jù)備份文件包含gprestore并行恢復完整備份集所需的所有信息。 備份元數(shù)據(jù)還提供了在gprestore的未來版本中僅用于還原數(shù)據(jù)集中的單個對象以及任何依賴對象的框架。將表數(shù)據(jù)存儲在CSV文件中還提供了使用其他恢復工具(如gpload)在同一群集或其他群集中加載數(shù)據(jù)的機會。 默認情況下,為節(jié)點上的每個表創(chuàng)建一個文件。 您可以使用gpbackup指定--leaf-partition-data選項,以便為分區(qū)表的每個葉子分區(qū)創(chuàng)建一個數(shù)據(jù)文件,而不是單個文件。 此選項還允許您按葉分區(qū)篩選備份集。
????????每個gpbackup任務都使用數(shù)據(jù)庫中的單個事務。 在此事務期間,元數(shù)據(jù)將在master主機上備份,并且每個節(jié)點主機上的每個表的數(shù)據(jù)將使用COPY ... ON SEGMENT命令并行寫入CSV備份文件。 備份進程在備份的每個表上獲取ACCESS SHARE鎖。
非并行備份
????????pg_dump和pg_dumpall非并行備份工具可以用來在master主機上創(chuàng)建一個單獨的,包含所有節(jié)點數(shù)據(jù)的dump文件。非并行工具應該在特殊場合使用。 它們比使用gpbackup工具要慢得多,因為所有數(shù)據(jù)都必須通過master。 此外,通常情況是master主機沒有足夠的磁盤空間來保存整個分布式數(shù)據(jù)庫的備份。pg_restore工具需要pg_dump或pg_dumpall創(chuàng)建的壓縮dump文件。 在開始還原之前,應修改dump文件中的CREATE TABLE語句以包含DISTRIBUTED子句。如果您不包含DISTRIBUTED子句,數(shù)據(jù)庫會分配默認值,這可能不是最佳值。使用并行的備份文件來做一個非并行的恢復,可以從每個實例節(jié)點拷貝備份文件到master節(jié)點,然后通過master加載它們。
文章來源:http://www.zghlxwxcb.cn/news/detail-702514.html
需求和限制
????????gpbackup和gprestore有如下限制:文章來源地址http://www.zghlxwxcb.cn/news/detail-702514.html
-
如果在父分區(qū)表上創(chuàng)建索引,則gpbackup不會在父分區(qū)的子分區(qū)表上備份相同的索引,因為在子分區(qū)上創(chuàng)建相同的索引會導致錯誤。但是,如果您交換分區(qū),則gpbackup不會檢測到交換分區(qū)上的索引是從新父表繼承的。 在這種情況下,gpbackup備份沖突的CREATE INDEX語句,這會在還原備份集時導致錯誤
-
可以執(zhí)行gpbackup的多個實例,但每次執(zhí)行都需要不同的時間戳
-
數(shù)據(jù)庫對象過濾目前僅限于schema和表
-
如果使用gpbackup --single-data-file選項將表備份組合到每個節(jié)點的單個文件中, 則無法使用gprestore執(zhí)行并行還原操作
-
不能將--exclude-table-file與--leaf-partition-data一起使用。 雖然可以在使用--exclude-table-file指定的文件中指定葉子分區(qū)名稱,但gpbackup會忽略分區(qū)名稱
- 在運行DDL命令的同時使用gpbackup備份數(shù)據(jù)庫可能會導致gpbackup失敗。如果gpbackup嘗試獲取表上的鎖時表不再存在,則gpbackup將退出并顯示錯誤消息。對于可能在備份期間刪除的表,可以使用gpbackup表過濾選項(例如--exclude-table或--exclude-schema)從備份中排除表
-
使用gpexpand創(chuàng)建的備份只能還原到與源集群具有相同數(shù)量的節(jié)點實例的數(shù)據(jù)庫集群。 如果運行gpexpand將節(jié)點添加到集群,則在擴容完成后無法恢復在擴容之前所做的備份
到了這里,關于人大金倉分析型數(shù)據(jù)庫備份和恢復(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!