将Greenplum并行备份恢复到配置不同的新集群

在Greenplum中,我们可以使用 gp_restore 或者 gpdbrestore 对数据库进行并行恢复,但是并行恢复要求要恢复的新集群与备份集群拥有同样的配置(节点实例数量)。但是如果我们的新集群节点数与原集群不一样怎么办?还能使用原备份文件吗?答案是肯定的,但是由于节点数量不一样了,我们只能通过Master节点进行非并行备份。

准备工作:

  • 首先我们手里要有一份 gp_dump 或者 gpcrondump 导出的并行备份文件。文件由两部分组成,来自Master的备份包括重建库所用的DDL语句,来自Segments的备份包括所有的用户数据。
  • 目标Greenplum数据库集群正在运行。
  • 在目标库中,创建好对应数据库。

恢复数据到新集群

并行备份的数据文件,实际上是由COPY命令组成的文本格式文件,恢复的逻辑就是从Master将这些数据一个个导入数据库,数据会根据目前集群的状况进行重分布入库。具体步骤如下:

  • 首先确保备份集合完整。备份文件包括Master节点文件:gp_dump_1_1_<timestamp>,对应于每个Segment实例的文件:gp_dump_0_2_<timestamp>,gp_dump_0_3_<timestamp>等。其中timestamp的值应该一致,代表导出的时间点。默认的数据文件存放在各个节点的dumps文件夹下,操作时需要将这些数据迁移到新恢复节点的Master上,如果Master空间不够,可以单个迁移恢复后再操作下一个。
  • 确保要恢复的数据库已经创建(数据库名称已存在),如没有创建,可使语句创建:createdb dbname
  • 恢复数据库对象:$ psql dbname -f /gpdb/backups/gp_dump_1_1_20170727
  • 恢复数据:
$ psql database_name -f /gpdb/backups/gp_dump_0_2_20170727
$ psql database_name -f /gpdb/backups/gp_dump_0_3_20170727
$ psql database_name -f /gpdb/backups/gp_dump_0_4_20170727
$ psql database_name -f /gpdb/backups/gp_dump_0_5_20170727
...

End~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值