CentOS7 安装 gpbackup 和 gpbackup-s3-plugin 来备份和还原 Greenplum 数据库

安装Greenplum请看

https://www.cnblogs.com/kgdxpr/p/13652379.html

一、安装和配置GO的环境

yum install -y git wget

cd /usr/local

wget -c https://studygolang.com/dl/golang/go1.16.linux-amd64.tar.gz

tar -zxvf go1.16.linux-amd64.tar.gz

mv go /usr/local/gpadmin/

chown -R gpadmin:gpadmin /usr/local/gpadmin/go

su - gpadmin

source /usr/local/greenplum-db/greenplum_path.sh

vi ~/.bashrc

export GOROOT=$HOME/go

export GOPATH=$HOME/gopath

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

source ~/.bashrc

二、安装gpbackup

git clone https://gitee.com/mirrors_greenplum-db/gpbackup.git

cd gpbackup

go env -w GOPROXY=https://goproxy.cn

make depend

make build

make build_linux

#测试备份

gpbackup --dbname test_db

三、安装gpbackup-s3-plugin,将备份直接上传到S3协议的存储,例如华为的OBS,阿里的OSS,自已部署的minio

##插件需要安装集群的所有服务器上,所以都需要配置GO的环境

git clone https://gitee.com/mirrors_greenplum-db/gpbackup-s3-plugin.git

cd gpbackup-s3-plugin

go env -w GOPROXY=https://goproxy.cn

make build

make install

配置s3-config.yaml文件,我用的是华为的OBS

executablepath: /usr/local/gpadmin/gopath/bin/gpbackup_s3_plugin
options:
  endpoint: https://obs.cn-north-1.myhuaweicloud.com
  aws_access_key_id: AK
  aws_secret_access_key: SK
  bucket: 桶名
  folder: 目录名

## 备份test_db 数据库到S3协议的存储

gpbackup --dbname test_db --plugin-config /usr/local/gpadmin/s3-config.yaml

备份的位置:桶名/目录名/backups/YYYYMMDD/YYYYMMDDHHMMSS/

四、还原数据库

##需要先删掉数据库再还原

dropdb test_db

gprestore --timestamp 20210224102933 --plugin-config /usr/local/gpadmin/s3-config.yaml --create-db

--timestamp参数可查看存储的备份位置,你要还原哪个就写相应的时间戳目录名