greenplum并行备份和单独还原每个segment


#############################
greenplum备份
#############################
# 在master上执行
su - gpadmin #切换greenplum的管理员账号
gp_dump UEB --gp-d=/home/gpbackup/ --gp-r=/home/gpbackup/ #并行备份数据库

# master上备份文件如下:
gp_cdatabase_1_1_20200704101035
gp_dump_1_1_20200704101035
gp_dump_1_1_20200704101035_post_data
gp_dump_20200704101035.rpt
gp_dump_status_1_1_20200704101035

# 解释
# 备份文件格式,文件名称+20200704101035,20200704101035是备份的时间戳
1、带 gp_cdatabase #这个文件是创建数据库的SQL。如:gp_cdatabase_1_1_20200704101035。
2、只带gp_dump_1_1 #这个文件是schema,表,函数等对象的创建语句。如:gp_dump_1_1_20200704101035
3、带 post_data #这个文件是索引,约束等对象的创建语句。如:gp_dump_1_1_20200704101035_post_data
4、带.rpt后缀 #这个是备份报告。如:gp_dump_20200704101035.rpt,内容如下:
segment 47 (dbid 49) Host sdw6 Port 21007 Database UEB BackupFile /home/gpbackup/gp_dump_0_49_20200704101035: Succeeded
segment 46 (dbid 48) Host sdw6 Port 21006 Database UEB BackupFile /home/gpbackup/gp_dump_0_48_20200704101035: Succeeded
segment 45 (dbid 47) Host sdw6 Port 21005 Database UEB BackupFile /home/gpbackup/gp_dump_0_47_20200704101035: Succeeded
segment 44 (dbid 46) Host sdw6 Port 21004 Database UEB BackupFile /home/gpbackup/gp_dump_0_46_20200704101035: Succeeded
segment 43 (dbid 45) Host sdw6 Port 21003 Database UEB BackupFile /home/gpbackup/gp_dump_0_45_20200704101035: Succeeded
segment 42 (dbid 44) Host sdw6 Port 21002 Database UEB BackupFile /home/gpbackup/gp_dump_0_44_20200704101035: Succeeded
segment 41 (dbid 43) Host sdw6 Port 21001 Database UEB BackupFile /home/gpbackup/gp_dump_0_43_20200704101035: Succeeded
segment 40 (dbid 42) Host sdw6 Port 21000 Database UEB BackupFile /home/gpbackup/gp_dump_0_42_20200704101035: Succeeded
5、带gp_dump_status #这个文件是备份状态文件。如:gp_dump_status_1_1_20200704101035,内容如下:
20200704:10:10:35|gp_dump_agent-[INFO]:-Starting monitor thread
20200704:10:10:35|gp_dump_agent-[INFO]:-Dumping database "UEB"...
20200704:10:10:35|gp_dump_agent-[INFO]:-reading schemas
20200704:10:10:35|gp_dump_agent-[INFO]:-reading user-defined functions
20200704:10:10:37|gp_dump_agent-[INFO]:-TASK_SET_SERIALIZABLE
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined types
20200704:10:10:41|gp_dump_agent-[INFO]:-reading type storage options
20200704:10:10:41|gp_dump_agent-[INFO]:-reading procedural languages
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined aggregate functions
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined operators
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined external protocols
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined operator classes
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined foreign-data wrappers
20200704:10:10:41|gp_dump_agent-[INFO]:-reading user-defined foreign servers

# 测试备份的greenplum集群有1个master,6个segment
# 第一个segment上备份文件如下,该segment上面有8个分片,每个备份gp_dump_0_文件对应一个分片,2代表第1个分片
# 每个gp_dump_status_0_2文件对应一个分片的备份状态信息

gp_dump_0_2_20200704101035
gp_dump_0_3_20200704101035
gp_dump_0_4_20200704101035
gp_dump_0_5_20200704101035
gp_dump_0_6_20200704101035
gp_dump_0_7_20200704101035
gp_dump_0_8_20200704101035
gp_dump_0_9_20200704101035
gp_dump_status_0_2_20200704101035
gp_dump_status_0_3_20200704101035
gp_dump_status_0_4_20200704101035
gp_dump_status_0_5_20200704101035
gp_dump_status_0_6_20200704101035
gp_dump_status_0_7_20200704101035
gp_dump_status_0_8_20200704101035
gp_dump_status_0_9_20200704101035

# 第六个segment上备份文件如下,该segment上面有8个分片,每个备份gp_dump_0_文件对应一个分片,42代表第41个分片
# 每个gp_dump_status_0_2文件对应一个分片的备份状态信息

gp_dump_0_42_20200704101035
gp_dump_0_43_20200704101035
gp_dump_0_44_20200704101035
gp_dump_0_45_20200704101035
gp_dump_0_46_20200704101035
gp_dump_0_47_20200704101035
gp_dump_0_48_20200704101035
gp_dump_0_49_20200704101035
gp_dump_status_0_42_20200704101035
gp_dump_status_0_43_20200704101035
gp_dump_status_0_44_20200704101035
gp_dump_status_0_45_20200704101035
gp_dump_status_0_46_20200704101035
gp_dump_status_0_47_20200704101035
gp_dump_status_0_48_20200704101035
gp_dump_status_0_49_20200704101035

# 注意:如果备份完成,每个segment上备份的文件不是与上面的描述相同,则代表segment上面,某些节点的primary和mirror角色发生切换。

# 解释

# 备份文件名字gp_dump_0_+分片id+_备份时间戳


# 第六个segment上备份文件如下,该segment上面有8个分片,每个备份对应一个分片:

#############################
greenplum还原
#############################
# 所有操作在master上执行
# 先还原创建数据库
psql -d UEB -f /data/backup/gpbackup/gp_cdatabase_1_1_20200704101035
# 还原表结构文件
psql -d UEB -f /data/backup/gpbackup/gp_dump_1_1_20200704101035
# 还原约束文件
psql -d UEB -f /data/backup/gpbackup/gp_dump_1_1_20200704101035_post_data
# 按顺序还原数据分片备份文件

psql -d UEB -f /data/backup/gpbackup/gp_dump_0_2_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_3_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_4_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_5_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_6_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_7_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_8_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_9_20200704101035
.
.
.
.
.
.
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_42_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_43_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_44_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_45_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_46_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_47_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_48_20200704101035
psql -d UEB -f /data/backup/gpbackup/gp_dump_0_49_20200704101035