GaussDB(DWS) 实践系列 - DWS集群NBU备份恢复操作步骤
1、GaussDB(DWS)NBU备份介绍
华为NBU备份的逻辑如下所示:
- 每个数仓节点都有Roach agent进程负责本节点的数据备份;
- 第一个节点额外有一个Roach master进程负责分布式集群备份。
- 每个Media Server(备份介质服务器)安装华为的Roach client 插件。
备份数据流向:
- 在Media Server端安装Roach Client插件(该插件端口可指定)
- 规划集群节点与Media Server之间的映射文件
- 集群内Roach agent组件生成备份内容到内存,根据映射关系socket传输到远端Roach Client。
- NBU服务器侧Roach Client插件接收备份数据,调用XBSA接口发送给Media Server。
- Master Server根据StorageGroup策略分发数据到对应的Media Server,存储到磁带或磁盘
2、备份恢复操作步骤:
2.1 前置操作
- 需要保证集群内节点ping通 NBU 集群内所有集群,沙箱环境内Ruby用户下要能ping通NBU机器;
- NBU服务器、集群内节点以及涉及的中转节点,都应保证是万兆网络链接,否则会影响性能验证
- 验证前进入沙箱临时调整gsql禁免密guc参数:
su – Ruby
gs_guc set -Z coordinator -I all -N all -h 'local all all trust'
gs_guc set -Z datanode -I all -N all -h 'local all all trust'
- 需提前安装好NBU环境,包括NBU Media Server等;
- NBU Media Server机器上需要对外开放通信端口,用于沙箱内集群各节点和NBU Media Server之间TCP通信传输备份文件;
- 已安装配置roach client插件
- 已配置NBU参数和策略
2.2 集群备份操作步骤
云数仓备份功能可基于两种方式实施:
方式一:DWS管控面
- 启动Roach client并确保NBU配置正确;
- 进入DWS管控面,点击备份集群,打开管控界面NBU开关,打开方式为:: F12进入浏览器console后,输入如下指令
window.configData.snapshotSwith = 'true'
window.configData.nbuServerConfig = 'true'
- 进入集群,点击快照,点击自动快照状态,修改快照策略,选择备份设备为NBU、备份服务器IP为NBU Media Server ip,按行输入,不要有空行。备份服务器端口即为roach client插件开放的端口,NBU策略根据实际配置输入,与创建的policy保持一致。
- 配置策略完成后,进入对应集群控制界面,点击更多,会弹出下拉菜单,点击创建快照即可,然后输入快照名称,点击确定,即可创建快照。
- 设置自动快照备份后,即会周期触发增量备份(默认周期为8小时)
方式二:命令行(可根据需要配置为备份作业)
- 执行全量备份命令:
python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination /data1/roachbackup/metadata --parallel-process 3 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888
注意:--media-destination为NBU策略名、metadata-destination、parallel-process、nbu-media-list、client-port根据实际配置进行更改。 其中metadata-destination值为元数据存放路径parallel-process为设置的并行参数, 至少为单个节点主DN个数 + CN个数,nbu-media-list值为media server ip的记录清单,client-port为roach_client插件开放的端口
- 执行增量备份命令:
python $GPHOME/script/GaussRoach.py -t backup --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination $GAUSSHOME/roachbackup/metadata --parallel-process 3 --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888 --prior-backup-key 20200912_083324
备份说明:
全量备份会将源数据完整备份,而增量备份仅将上次备份后所做的更改进行备份,这里的上次备份可以是全量备份,也可以是全量备份后的增量备份。
需要注意的是,增量备份的基础始终是全量备份。如果一次全量备份之后进行了全量恢复,则不能再基于该全量备份进行增量备份,必须要重新进行全量备份,然后基于新的全量备份进行增量备份。
增量备份分为累积增量备份和差分增量备份:指定的--prior-backup-key参数值始终为全量备份的backup key,那么增量备份就是累积增量备份,累积增量备份均是基于最近一次全量备份
2.3 集群恢复操作步骤
- 执行全量/增量恢复命令:
python $GPHOME/script/GaussRoach.py -t restore --clean --master-port 55000 --media-destination nbu_policy --media-type NBU --metadata-destination /data1/roachbackup/metadata --backup-key xxxxxx --nbu-on-remote --nbu-media-list /home/Ruby/media.txt --client-port 8888
根据指定的backup key和系统中相关的全量/增量备份文件执行全量/增量恢复
- 启动集群
python $GPHOME/script/GaussRoach.py -t start
2.4 后置操作
执行结束后,需要还原gsql禁免密配置:
su - Ruby
gs_guc set -Z coordinator -I all -N all -h 'local all all sha256'
gs_guc set -Z datanode -I all -N all -h 'local all all sha256'
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料~
- 点赞
- 收藏
- 关注作者
评论(0)