华为云数仓GaussDB(DWS)备份恢复的实现

举报
雅丫丫呀 发表于 2020/07/17 17:25:23 2020/07/17
【摘要】 为什么要进行数据备份?在信息化社会,数据是每个企业最重要的资产,每个好的企业致力于为用户提供稳定可靠的服务,各种客观(自然灾害,网络故障,硬盘故障等)或者主观原因(人为损坏,人为误操作等)会造成数据丢失,影响企业业务,所以数据的备份及恢复显得尤为重要。保护好客户数据,灾难来临,客户数据不丢失,企业业务能够连续进行是数据灾备的目的。数据库灾备能力是评价数据库优劣的重要指标之一。 Raoch工具...

为什么要进行数据备份?

在信息化社会,数据是每个企业最重要的资产,每个好的企业致力于为用户提供稳定可靠的服务,各种客观(自然灾害,网络故障,硬盘故障等)或者主观原因(人为损坏,人为误操作等)会造成数据丢失,影响企业业务,所以数据的备份及恢复显得尤为重要。保护好客户数据,灾难来临,客户数据不丢失,企业业务能够连续进行是数据灾备的目的。数据库灾备能力是评价数据库优劣的重要指标之一。

 

Raoch工具介绍:

GaussDB A通过Roach工具提供备份和灾难恢复功能。目前Roach支持的集群形态包括:主备从集群、一主多备集群、小型化集群(单节点部署)。支持物理备份和逻辑备份,并且支持DISKNBUOBS(DWS线上使用)EISOO等备份介质。在备份恢复过程中,集群内每个节点都会运行gs_roach进程,并且会有一个节点以roach master的角色运行roach进程,其余所有节点会以roach agent的角色运行roach进程。roach master控制备份恢复的所有流程和操作,roach agent接收和处理来自于master的命令。

 

应用场景之集群级备份:

  集群级备份属于物理备份,GaussDB A根据用户需求提供全量备份和增量备份两种方式,并支持断点续做。

集群级全量备份场景:

python $GPHOME/script/GaussRoach.py

-t <命令类型> 【例如:restore

--master-port <master端口号> roach主代理进程执行端口】

--media-type <介质类型> 【备份集存放的介质类型,如DISK等】

--media-destination <备份文件存放路径>【例如:/home/test/media

--metadata-destination <备份元数据存放路径>【例如:/home/test/meta

 

集群级增量备份场景:

在全量备份基础上加--prior-backup-key参数:

--prior-backup-key<指定基于的全量备份的key>【例如:如果该参数的值为20200505_162558,则表示该次备份为增量备份,且本次增量备份基于key20200505_162558的全量备份进行

 

集群全量备份断点续做场景:

考虑到集群级备份数据量大且备份时间较长,在备份过程中可能受到不可抗力导致备份中断,GaussDB A 提供了断点续做功能,只需要在备份命令添加—resume-backup参数即可。

 

应用场景之集群级恢复:

  集群级恢复命令如下:

python $GPHOME/script/GaussRoach.py -t restore --master-port 7786 --media-type disk --media-destination /home/test/media --metadata-destination /home/test/meta --clean –backup-key XXXX_XXXX

其中:

--clean <表示恢复前清除数据库中的数据>

--backup-key <参数值为带恢复的备份集的key>

 

应用场景之表级备份:

全量备份数据量较大,备份集占用存储空间较大,重复数据重复备份,造成存储空间的浪费。实际应用中,客户数据库中常用的表有限,需要经常的做全量备份,因此,为了节约存储资源,提升客户工作效率,GaussDB A提供了表级备份功能。其中,表级备份分为单表备份和多表备份。

 

单表备份场景:

python $GPHOME/script/GaussRoach.py -t backup --master-port <master端口> --media-destination <备份路径> --media-type disk --metadata-destination <元数据备份路径>

--tablename <表名称>

--agent-port<备份表时Roach与数据库内核之间建立外表所需端口>

–dbname <表所在数据库名称>

 

多表备份场景:

python $GPHOME/script/GaussRoach.py -t backup --master-port <master端口> --media-destination <备份路径> --media-type disk --metadata-destination <元数据备份路径>

--agent-port <agent端口>

--table-list <待备份tablelist列表文件,例如:tablist.txt>

--dbname <备份表所在数据库名称>

--logical <--logical参数表示本次备份为逻辑备份>

说明:--table-list的值为tablist.txt,其内容需要备份的表,每张表名一行,格式如下:

schema01.tab01

schema02.tab02

schema01.tab03

 

应用场景之表级恢复:

单表恢复:

python $GPHOME/script/GaussRoach.py -t restore --clean --create --master-port 9898 --media-type DISK --media-destination /home/test/media --metadata-destination /home/test/meta --agent-port 7000 --dbname db1 –tablename tab1 --backup-key XXXX_XXXX

其中:
--create <表示创建表结构>

--logging <参数值为truefalsetrue表示启用日志文件记录功能;false表示禁用日志文件记录功能>

 

多表恢复:

python $GPHOME/script/GaussRoach.py -t restore --clean --create --master-port 9898 --media-type DISK --media-destination /home/test/media --metadata-destination /home/test/meta --agent-port 7000 --dbname db1 –table-list tablist.txt --backup-key XXXX_XXXX --logical

 

在执行备份恢复命令时,还提供了以下多种功能参数

--buffersize <缓存大小>

--compression-type <压缩算法类型,值为1代表采用zlib压缩算法,值为 2代表采用lz4压缩算法>

--compression-level <压缩级别,参数值为0-9,值为0表示快速压缩或无压缩,值为9表示慢速压缩或最大压缩>

--filesplit-size <被拆分文件的大小>

--log-filecount <日志文件的最大个数>

--log-filesize <最大日志文件的大小>

--logging-level <日志级别 FATAL ERROR WARNING INFO DEBUG DEBUG2>

--parallel-process <roach可使用子进程个数>

--retry-wait-time <失败后重试时需等待的时间>

……

 

 roach其它功能介绍:

stop---用于停止正在进行的备份恢复进程;

validate---用于验证所有的备份文件,识别文件有无损坏;Roach工具提供了备份集的两种验证方法,分别是Full(基于CRC校验)Partial(基于文件大小验证)

delete---用于删除不需要的备份集;
show---以列表形式显示可用备份、备份类型、将用于特定backup key恢复的备份,回显信息中包括BACKUP KEYBKP TYPEBARRIER TIMEDELETION TIMEVALIDATION TIMESTATUSTLIBKP PRIOR KEYBACKUP LEVEL等关键信息。


      除以上应用场景,roach工具还提供了基于schema级别和database数据库级别的备份恢复。

GaussDB A提供了管控面管理,可以在管控面进行备份恢复管理。客户可以在管控面,定制自己的备份恢复策略,轻松创建一个备份任务,对备份集进行管理。可视化执行备份恢复任务。

除了基本备份恢复,GaussDB A还提供专门容灾工具,在两套主备集群之间实现周期性备份恢复,主集群正常提供业务,进行周期性备份,并将备份集传给备集群,备集群进行周期性恢复,两套集群互不影响,当主集群发生故障,备集群能够迅速替代主集群,提供正常业务。

总而言之,GaussDB A提供各种符合客户使用需求的备份恢复,容灾,迁移解决方案,使数据管理变得更加简单,安全和可靠。


 更多精彩内容,请关注华为云开发者社区论坛:https://bbs.huaweicloud.com/forum/forum-598-1.html 及微信公众号“华为云AI


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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