GaussDB(DWS) 实践系列 - DWS集群NBU备份恢复操作步骤

举报
取个啥名 发表于 2021/05/18 10:13:42 2021/05/18
【摘要】 GaussDB(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用户下要能pingNBU机器;
  • 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、备份服务器IPNBU 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-destinationNBU策略名、metadata-destinationparallel-processnbu-media-listclient-port根据实际配置进行更改。 其中metadata-destination值为元数据存放路径parallel-process为设置的并行参数, 至少为单个节点主DN个数 + CN个数,nbu-media-list值为media server ip的记录清单,client-portroach_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级数仓黑科技,后台还可获取众多学习资料~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。