Raoch工具介绍:
GaussDB A通过Roach工具提供备份和灾难恢复功能。目前Roach支持的集群形态包括:主备从集群、一主多备集群、小型化集群(单节点部署)。支持物理备份和逻辑备份,并且支持DISK,NBU,OBS(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,则表示该次备份为增量备份,且本次增量备份基于key为20200505_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 <参数值为true或false,true表示启用日志文件记录功能;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 KEY、BKP TYPE、BARRIER TIME、DELETION TIME、VALIDATION TIME、STATUS、TLI、BKP PRIOR KEY、BACKUP LEVEL等关键信息。
除以上应用场景,roach工具还提供了基于schema级别和database数据库级别的备份恢复。
GaussDB A提供了管控面管理,可以在管控面进行备份恢复管理。客户可以在管控面,定制自己的备份恢复策略,轻松创建一个备份任务,对备份集进行管理。可视化执行备份恢复任务。
除了基本备份恢复,GaussDB A还提供专门容灾工具,在两套主备集群之间实现周期性备份恢复,主集群正常提供业务,进行周期性备份,并将备份集传给备集群,备集群进行周期性恢复,两套集群互不影响,当主集群发生故障,备集群能够迅速替代主集群,提供正常业务。
逻辑导出导入工具
按数据库导出
gs_dump -p 25308 testdb f /srv/BigData/LocalBackup/testdbback.sql
按schema导出(支持多个模式的转储。多次输入-n schemaname转储多个模式)
gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -n sch1 -n sch2
按表导出(支持可以使用多个-t选项来选择多个表)
gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -t schema1.table1 -t schema2.table2
导入工具
gs_restore
按schema导出(支持多个模式的转储。多次输入-n schemaname可以导入多个模式)
gs_restore -h host_name -p port_number -d postgres -n sch1 -n sch2 backup/MPPDB_backup.tar
导入PUBLIC模式下的table1
gs_restore -h host_name -p port_number -d postgres -t table1 backup/MPPDB_backup.tar
导入test1模式下的test1和test2模式下test2
gs_restore -h host_name -p port_number -d postgres -n test1 -t test1 -n test2 -t test2 backup/MPPDB_backup.tar
导入PUBLIC模式下的table1和test1 模式下test1
gs_restore -h host_name -p port_number -d postgres -n PUBLIC -t table1 -n test1 -t table1 backup/MPPDB_backup.tar




