ITPub博客

首页 > 数据库 > NoSQL > Greenplum 之备份恢复

Greenplum 之备份恢复

原创 NoSQL 作者:wzgchen 时间:2016-04-13 17:15:37 0 删除 编辑

版本:Greenplum 4.3.6.2
         Linux:OS 6.7
-------------------
测试备份恢复:ok


环境准备
创建数据库:
create user pay with password 'pay';
CREATE DATABASE pay  WITH OWNER = pay  ENCODING = 'UTF8'  

导入测试数据
psql -d pay -f payment.sql 

加入本地认证
more pg_hba.conf
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust


创建备份目录:
 su - root
. /opt/greenplum-db-4.3.6.2/greenplum_path.sh 
gpssh -f all_hosts -e 'mkdir -p /home/gpadmin/gp_dump'
gpssh -f all_hosts -e 'chown gpadmin /home/gpadmin/gp_dump'


库级别备份:
gp_dump pay --gp-d /home/gpadmin/gp_dump/  --gp-r=/home/gpadmin/gp_dump/
create table c1 (id int);
insert into c1 values(1);


库级别恢复:
drop schema pay cascade;
gp_restore -d pay --gp-d /home/gpadmin/gp_dump/ --gp-r=/home/gpadmin/gp_dump/ --gp-k=20160413154538


报错:
gp_restore-[ERROR]:-Error executing query SELECT * FROM gp_read_backup_file('/home/gpadmin/gp_dump/', '20160413154538', 2) : ERROR:  Backup File /home/gpadmin/gp_dump/gp_restore_status_1_1_20160413154538 Type 2 could not be be found


解决:加上-status参数,指定status file写目录
gp_restore -d pay --gp-d /home/gpadmin/gp_dump/ --gp-r=/home/gpadmin/gp_dump/ --gp-k=20160413154538 --status=/home/gpadmin/gp_dump/




采用gpcrondump备份
gpcrondump与gprestore是一对备份恢复工具


备份:
gpcrondump -x pay -u /home/gpadmin/gp_dump/ -c -g -G -a -q >>/home/gpadmin/gp_dump/gp_paydump.log
或:这样会自动在各自的数据目录中创建目录db_dumps
gpcrondump -x pay   -c -g -G -a -q >>/home/gpadmin/gp_dump/gp_paydump2.log


恢复:
more /data/master/gpseg-1/db_dumps/20160413/gp_dump_20160413162414.rpt
gpdbrestore  pay -t 20160413162414   --report-status-dir=/home/gpadmin/


加入调度
crontabl -e
gpadmin source $GPHOME/greenplum_path.sh;gpcrondump -x testdw -c -g -G -a -q >>gp_testdwdump.log


恢复到配置不同的GP系统
在master上完成
使用并行备份文件通过GP Master做非并行装载
segment备份文件内容包含了COPY命令,数据是分割平面格式
恢复步骤:
确保具备了全部的备份文件,包含master和每个segment的文件,所有的文件具有相同的时间戳
创建数据库
more /data/master/gpseg-1/db_dumps/20160413/gp_cdatabase_1_1_20160413162414 --创建数据库脚本
装载master备份文件以恢复数据库对象
cd /data/master/gpseg-1/db_dumps/20160413
gunzip gp_dump_1_1_20160413162414.gz
psql pay -f /data/master/gpseg-1/db_dumps/20160413/gp_dump_1_1_20160413162414


装载每个segment的备份文件以恢复数据
sdw1:scp gp_dump_0_2_20160413162414.gz mdw1:/data/master/gpseg-1/db_dumps
sdw2:scp gp_dump_0_3_20160413162414.gz mdw1:/data/master/gpseg-1/db_dumps


mdw1:
gunzip gp_dump_0_2_20160413162414.gz
gunzip gp_dump_0_3_20160413162414.gz


psql pay -f /data/master/gpseg-1/db_dumps/gp_dump_0_2_20160413162414
psql pay -f /data/master/gpseg-1/db_dumps/gp_dump_0_3_20160413162414
恢复table相关的对象,如索引,触发器、主键约束等
cd /data/master/gpseg-1/db_dumps/20160413
gunzip gp_dump_1_1_20160413162414_post_data.gz
psql pay -f/data/master/gpseg-1/db_dumps/20160413/gp_dump_1_1_20160413162414_post_data


psql备份恢复
导出包含分布键信息的pay数据库到SQL文件
pg_dump pay --gp-syntax  >pay.sql


psql -d pay -f pay.sql
select pg_size_pretty(pg_database_size('pay'));



-------------------

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/91975/viewspace-2080620/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Mongodb之索引
请登录后发表评论 登录
全部评论

注册时间:2015-05-01

  • 博文量
    383
  • 访问量
    213577