第六章 备份与恢复数据库
作用:利用备份重建和还原数据库。利用备份迁移数据库到另一个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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16976507/viewspace-1798850/
本文详细介绍了Greenplum数据库的备份与恢复操作,包括并行与非并行备份、恢复流程、增量备份策略及自动化备份实现。重点讨论了如何利用gpcrondump和gpdbrestore工具进行高效备份与恢复,以及如何通过设置直接IO、DataDomainBoost等特性优化备份性能。同时,提供了备份文件位置、恢复数据库到相同或不同配置系统的方法,并强调了备份文件位置、重建或还原数据、以及恢复到相同或不同配置系统的重要性。

被折叠的 条评论
为什么被折叠?



