GPDB43 Administrator Guide--第六章 備份與恢復資料庫
第六章 備份與恢復資料庫
作用:利用備份重建和還原資料庫。利用備份遷移資料庫到另一個greenplum;
一、備份與恢復操作
備份與恢復分為平行與非並行,也就是並行備份對應並行恢復、非並行備份對應非並行恢復。
(一)並行備份
工具:gpcrondump,預設備份目錄為:gp_dump;可以執行全部備份和增量備份;gpcrondump可以直接在shell視窗執行也可以透過crontab自動排程執行;
Figure 10: Parallel Backups in Greenplum Database
(二)非並行備份:
工具一:pg_dump和pg_dumpall,可以用在遷移pg資料庫到greenplum資料庫;備份僅建立單個dump檔案,備份時注意master主機的空間是否夠用。
工具二:copy to SQL命令複製所有或者部分表資料到文字檔案中;
(三)並行恢復
gpdbrestore
(四)非並行恢復
Pg_restore:還原的前修改create table語句的DISTRIBUTED子句,如果不指定系統會指定預設值;
Figure 12: Non-parallel Restore Using Parallel Backup Files
二、備份資料庫
備份資料庫的過程中系統會鎖表;當備份開始時,會對pg_class執行exclusive鎖,鎖表後相關的表、索引、檢視不能被建立和刪除,這期間蒐集並備份資料庫中schema資訊;pg_class的exclusive鎖釋放後,會對需要備份的所有表逐一執行ACCESS SHARE鎖,當一個表備份完成後,釋放該表的ACCESS SHARE鎖。與ACCESS SHARE鎖衝突的語句如下:
? ALTER TABLE
? CLUSTER
? DROP TABLE
? REINDEX
? TRUNCATE
? VACUUM FULL
(一)增量備份
gpcrondump與gprestore是一對備份恢復工具。增量備份可以使用gpcrondump --incremental;增量備份只對做了如下操作的表進行備份;
? ALTER TABLE
? DELETE
? INSERT
? TRUNCATE
? UPDATE
? DROP and then re-create the table
對應分割槽表只備份變化的分割槽。對於增量備份集,是由一個全備份和一系列增量備份組成;並且備份集在一個單獨的裝置上,或者同一個資料域系統中,不能部分在資料域系統中其他在本地檔案系統或者網路備份系統;
- 備份表集合
透過gpcrondump選項--prefix實現增量備份一個指定的表集合。
首先,全備份一個表集合,透過指定--prefix,然後指定-t 或者--table-file,包含需要備份的表列表。也可以透過指定-T或者--exclusive-table-file,排除不需要備份的表列表。也可以指定-s或者--schema-file備份執行的schema中所有表,也可以透過指定-S或者--exclusive-schema-file排除不需要備份的schema。-s與-t不能同時使用;
然後,gpcrondump選項--incremental和--prefix執行增量備份;
例如:gpcrondump -x mydatabase --table-file=user-tables --prefix user_backup
- 增量備份的恢復
gpdbrestore工具:-q選項指定備份型別資訊寫入日誌檔案;--noplan選項只恢復增量備份中的資料;--list-backup選項列出需要的全備份和增量備份資訊;
(二)直接IO
- 開啟直接IO
gpconfig -c gp_backup_directIO -v on
- 降低網路chunks
gpconfig -c gp_backup_directIO_read_chunk_mb -v 10
上面命令設定chunk size為10M,預設為20M;
- 驗證當前chunk szie
$ gpconfig –s gp_backup_directIO_read_chunk_mb
- 驗證直接IO開啟與否
$ gpconfig –s gp_backup_directIO
(三)Data Domain Boost
Data Domain Boost是gpcrondump 和gpdbrestore的可選項,提供更快的備份在最初備份操作之後,並提供重複資料刪除,從源頭上減少網路流量。當你使用Data Domain Boost從資料域系統恢復檔案時,一些檔案複製到master本地磁碟並且從那裡恢復和其他地方直接恢復。參考Greenplum Database Utility Guide指南中的gpmfr。
使用Data Domain Boost需要購買license,並獲得 Data Domain Boost大小的推薦值;
(四)symantec網路備份(賽門鐵克備份工具)
。。。。。
(五)命名管道
透過gpcrondump命令-K timestamp選項、--list-backup-file 選項,建立檔名為*_pipes和*_regular_files的檔案。然後指定regular_files檔案備份資料庫;
例如:
gpcrondump -x testdb -K 20130530090000 --list-backup-files -u /backups
gpcrondump -x testdb -K 20130530090000 -u /backups
gpdbrestore -x testdb -t 20130530090000 -u /backups
(六)自動並行備份
透過gpcrondump命令與crontab配合實現;
Linux Example:
SHELL=/bin/bash
GPHOME=/usr/local/greenplum-db-4.3.0.0
MASTER_DATA_DIRECTORY=/data/gpdb_p1/gp-1
01 0 * * * gpadmin source $GPHOME/greenplum_path.sh;
gpcrondump -x sales -c -g -G -a -q >> gp_salesdump.log
預設傳送郵件的列表檔案為/home/gpadmin/mail_contacts
另外,可以指定email,備份完成後會傳送郵件。
$ vi /home/gpadmin/mail_contacts
dba@mycompany.com
jjones@mycompany.com
透過--email-file選項;如果沒有指定或者沒有mail_contacts檔案,則警告[WARNING]:-Found neither /usr/local/greenplum-db/./bin/mail_contacts nor /home/gpadmin/mail_contacts
三、恢復資料庫
恢復資料庫時需要考慮的三個問題:
- 備份檔案位置;如果是gpcrondump備份到各個segment主機,則使用gpdbrestore恢復;
- 是重建資料庫還是還原資料;恢復資料則使用gpdbrestore,如果是重建則使用gpinitsystem;
- 恢復資料庫到與原來相同的segment instance數量,還是不同的;相同則使用gpdbrestore即可,如果不同則必須做非並行恢復;參考:Restoring to a Different Greenplum System Configuration.
- 並行恢復
$gpcrondump -x db013 -t yduser.histmobilegsm
$gpdbrestore -t 20150806040302 --noanalyze -T yduser.histmobilegsm --truncate
- 恢復資料庫到不同的greenplum系統配置
步驟:1.需要全備份檔案。如果是是並行備份,則需要從各segment主機集中到master主機,集中儲存;
2.確保資料庫存在。如果新系統沒有,則建立資料庫;createdb;
3.首先載入master備份檔案,如:
psql database_name -f /gpdb/backups/gp_dump_1_1_20120714
4.然後,載入segment備份檔案,如:
$ psql database_name -f /gpdb/backups/gp_dump_0_2_20120714
$ psql database_name -f /gpdb/backups/gp_dump_0_3_20120714
$ psql database_name -f /gpdb/backups/gp_dump_0_4_20120714
5.再載入post data file,如:
$ psql database_name -f /gpdb/backups/gp_dump_0_5_20120714_post_data
6.修改資料庫sequence,如:
$gunzip -c /data/gpdb/master/gpseg-1/db_dumps/20150112/
gp_dump_1_1_20150112140316.gz
| egrep "SET search_path|SELECT pg_catalog.setval" >
schema_path_and_seq_next_val
$psql test_restore -f schema_path_and_seq_next_val
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-1798850/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 【備份恢復】從備份恢復資料庫資料庫
- postgresql備份與恢復資料庫SQL資料庫
- mongo資料庫備份與恢復Go資料庫
- 資料庫的備份與恢復資料庫
- Informix資料庫備份與恢復ORM資料庫
- GPDB43 Administrator Guide--第二章 啟動與停止GREENPLUM資料庫GUIIDE資料庫
- rman資料庫全庫備份與恢復資料庫
- mysql的資料庫備份與恢復MySql資料庫
- oracle資料庫的備份與恢復Oracle資料庫
- 資料庫備份與恢復技術資料庫
- 資料庫備份與異機恢復——熱備份方式資料庫
- Oracle資料庫備份與恢復之三:OS備份/使用者管理的備份與恢復Oracle資料庫
- GPDB43 Administrator Guide--第三章 訪問GREENPLUM資料庫GUIIDE資料庫
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- Oracle資料庫備份與恢復之RMANOracle資料庫
- 關閉資料庫的備份與恢復資料庫
- Oracle資料庫的備份與恢復(轉)Oracle資料庫
- 資料庫備份與恢復----第一課資料庫
- Oracle 資料庫的備份與恢復(轉)Oracle資料庫
- MySQL-19.資料庫備份與恢復MySql資料庫
- 【備份恢復】noarchive模式下使用增量備份恢復資料庫Hive模式資料庫
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- Mysql資料備份與恢復MySql
- GPDB43 Administrator Guide--第四章 配置GREENPLUM資料庫系統GUIIDE資料庫
- DB2的資料庫備份與恢復DB2資料庫
- ORACLE RAC資料庫的備份與恢復(6)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(5)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(4)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(3)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(2)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(1)Oracle資料庫
- 資料庫(表)的邏輯備份與恢復資料庫
- 達夢資料庫備份恢復資料庫
- 備份和恢復postgreSQL資料庫SQL資料庫
- Mysql資料庫備份及恢復MySql資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- 資料庫資料的恢復和備份資料庫