Roach备份恢复GaussDB DWS
本文档主要是针对Roach备份恢复GaussDB DWS数据库集群到本地磁盘的方式进行了详细的测试记录,包括全量备份和增量备份以及恢复。
主要步骤:
1、测试前准备
2、集群全量备份
3、增量备份
4、删除数据为恢复创造条件
5、集群恢复
6、Check恢复后的数据
详细步骤:
一、测试前准备
以下所有操作都使用omm用户测试完成。
1.1 创建一个测试库testdb1
create database testdb1 template template0 encoding 'UTF8' ;
1.2 在testdb1中创建一张测试表并insert 3条数据
创建表
create table table_row(
col_id integer,
col_name varchar2(30),
col_comment varchar2(200)
)distribute by hash(col_id);
测试数据
insert into table_row values(1001, 'name1001', 'cmm1001');
insert into table_row values(1002, 'name1002', 'cmm1002');
insert into table_row values(1003, 'name1003', 'cmm1003');
1.3 在本地磁盘创建一个备份目录
cd /srv/BigData/LocalBackup/
mkdir media
二、集群全量备份
1.1 登录主机
以操作系统用户omm登录Gauss集群任意一台主机,此主机作为Roach主代理
执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
1.2 进入Roach脚本目录
进入$GPHOME/script/目录
cd $GPHOME/script
1.3 开启归档模式
执行以下命令开启集群归档模式
python GaussRoach.py -t config --archive=true -p
1.4 执行备份
在作为Roach主代理的主机上执行以下命令:
python GaussRoach.py -t backup --master-port <master_port> --media-destination <media_destination_path> --media-type Disk --metadata-destination <metadata_path>
举例:
GaussRoach.py -t backup --master-port 6000 --media-destination /srv/BigData/LocalBackup/media --media-type Disk --metadata-destination /srv/BigData/LocalBackup/media/metadata --parallel-process 3 --compression-level 6
参数说明:
--media-destination:该参数用于指定本次备份的数据存储路径
--media-type Disk:该参数用于指定本次备份的元数据存储路径
--parallel-process:备份任务并发线程,建议值为每个数据节点(主DN个数+1)
--compression-level:备份压缩级别,0~9,值越大,压缩级别越高,0不压缩,经验证,压缩级别越高备份速率越低,推荐值:6
查看备份目录的变化:(此处见附件)
1.5 备份结束,关闭集群归档模式。
python GaussRoach.py -t config --archive=false –p
增量备份
执行以下步骤增量备份集群到磁盘:
1.1 登录到Gauss集群主机
以操作系统用户omm登录Gauss集群的任意一台主机,此主机作为Roach的主代理
执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
1.2 确定--prior-backup-key
确定—prior-backup-key,每次备份成功后都会生成一个以时间戳命名的备份文件夹,该时间戳(文件夹名称)就是backupkey
举例:上次备份目录下的文件名(/srv/BigData/LocalBackup/media/)的文件名
1.3 进入Roach目录
进入Roach脚本所在目录$GPHOME/script/
cd $GPHOME/script
1.4 开启集群归档模式。
python GaussRoach.py -t config --archive=true –p
1.5 增量备份
在作为Roach主代理的主机上执行以下命令:
python GaussRoach.py -t backup --master-port <master_port> --media-destination <media_destination_path> --media-type <media-type> --metadata-destination <metadata_path> --priorbackup-key <prior-backup-key>
举例:
GaussRoach.py -t backup --master-port 6000 --media-destination /srv/BigData/LocalBackup/media --media-type Disk --metadata-destination /srv/BigData/LocalBackup/media/metadata --parallel-process 3 --compression-level 6 --prior-backup-key 20200629_161652
1.6 备份结束,关闭集群归档模式。
python GaussRoach.py -t config --archive=false –p
四、删除testdb1,为恢复做准备
gsql –d postgres –p 25308 –ar
drop database testdb1;
五、集群恢复
1.1 登录Gauss集群任意一台主机
登录Gauss集群任意一台主机,使用集群用户omm登录集群任意一台主机(作为Roach代理主机),启动环境变量
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
1.2 进入Roach目标
进入“$GPHOME/script”目录,(在主代理主机)执行集群恢复操作, 并在恢复之前清理集群。(注:虽然我指定的是最近一次的backup-key,实际恢复的时候是先恢复全量,然后,逐步恢复每个增量)
python $GPHOME/script/GaussRoach.py -t restore --clean --media-destination /srv/BigData/LocalBackup/media --metadata-destination /srv/BigData/LocalBackup/media/metadata --master-port 6000 --media-type Disk --backup-key 20200629_171044
1.3 启动集群。
python GaussRoach.py -t start
六、查看恢复后的集群
可以看到集群已恢复,删除的testdb1库已经恢复回来。
- 点赞
- 收藏
- 关注作者
评论(0)