南大通用GBase 8c增量备份实践

原文链接:https://www.gbase.cn/community/post/4363
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

在当今信息化社会,数据的重要性不言而喻。对于企业来说,保护数据的完整性和可用性至关重要。数据库作为数据存储的核心组件,其备份与恢复策略的制定和实施是保障数据安全的关键一环。本文将详细介绍南大通用GBase 8c数据库的增量备份实践操作,帮助读者掌握如何高效、可靠地进行数据备份,确保数据的安全性和业务的连续性。

一、备份策略概述

在进行GBase 8c数据库的备份之前,首先需要确定合适的备份策略。根据业务需求和数据重要性,可以选择完全备份或增量备份。

  • 完全备份指备份所有数据。
  • 增量备份仅备份自上次备份以来发生变更的数据。

完全备份具有更高的容灾可用性,而增量备份能够节省时间和存储空间,特别适合于数据量大且更改频繁的环境。

二、准备工作

在执行增量备份之前,应确保数据库运行正常,并关闭不必要的应用程序以减少备份过程中的干扰。同时,检查备份存储设备的容量是否充足,以及网络连接是否稳定。

三、配置增量备份

1. 打开参数enable_cbm_tracking,跟踪数据页的变化

登录数据库查看并设置该参数为on:

show enable_cbm_tracking;
alter system set enable_cbm_tracking=on;

2. 初始化备份目录

创建备份路径,以 /home/gbase/backup为例

gs_probackup init -B /home/gbase/backup

查看备份路径:

tree -L 3 /home/gbase/backup

3.添加备份实例

语法:

gs_probackup add-instance -B backup-path                       ## 备份路径
                         -D pgdata-path                       ## 数据目录路径
                         --instance=instance_name             ## 实例名(自定义)
                         [-E external-directories-paths]      ## 需要备份的其他目录
                         [--remote-proto=protocol]            ## 远程操作的协议(仅支持SSH)
                         [--remote-host=destination]          ## 远程主机IP或主机名
                         [--remote-path=path]                 ## 远程主机的gs_probackup安装目录
                         [--remote-user=username]             ## 远程主机SSH连接的用户
                         [--remote-port=port]                 ## 远程主机SSH连接的端口(默认22)
                         [--ssh-options=ssh_options]          ## SSH命令行参数
                         [--help]                             ## 显示帮助信息

执行添加实例命令,例如:

gs_probackup add-instance -B /home/gbase/backup -D /opt/database/install/data/dn --instance gs_bak2023_inst

查看备份文件:

gs_probackup show -B /home/gbase/backup

4.执行全备和增量备

全量和增量备份语法格式均参考如下参数:

gs_probackup backup -B backup-path --instance=instance_name [-D pgdata-path]
   -b backup-mode                                       ## 备份模式:FULL(全量备份)/PTRACK(增量备份)
   [-C]                                                 ## -C指定检查点模式为spread(周期调度),默认为fast快速完成
   [-S slot-name] [--temp-slot]                         ## -S指定物理复制slot名称(默认pg_probackup_slot) ,--temp-slot为WAL流处理创建临时物理复制slot,确保备份过程中所需的WAL段仍然可用
   [--backup-pg-log]                                    ## 备份日志目录(默认不备份)
   [-j threads_num]                                     ## 并行线程数
   [--progress]                                         ## 显示进度
   [--no-validate]                                      ## 完成备份后跳过自动验证
   [--skip-block-validation]                            ## 关闭块级校验,加快备份速度
   [-E external-directories-paths]                      ## 需要备份的其他目录
   [--no-sync]                                          ## 不将备份文件同步写入磁盘,提升写入性能
   [--note=text]                                        ## 备份的注释
   [--archive-timeout=timeout]                          ## 以秒为单位设置流式处理的超时时间(默认300)
   [--log-level-console=log-level-console]              ## 设置要发送到控制台的日志级别,默认为info,设置off可以关闭
   [--log-level-file=log-level-file]                    ## 设置要发送到日志文件的日志级别,默认off
   [--log-filename=log-filename]                        ## 指定要创建的日志文件的文件名(strftime模式示例:pg_probackup-%u.log),默认pg_probackup.log
   [--error-log-filename=error-log-filename]            ## error日志的日志文件名
   [--log-directory=log-directory]                      ## gs_probackup的日志目录
   [--log-rotation-size=log-rotation-size]              ## gs_probackup的日志大小(默认单位KB,支持KB、MB、GB、TB),超过阈值后进行循环,默认0(禁用)
   [--log-rotation-age=log-rotation-age]                ## 单个日志文件的最大生命周期(默认单位min,支持ms, s, min, h, d),默认0表示禁用基于时间的循环
   [--delete-expired]                                   ## 删除不符合pg_probackup.conf配置文件中定义的留存策略的备份
   [--delete-wal]                                       ## 删除不需要的WAL文件
   [--merge-expired]                                    ## 将满足留存策略要求的最旧的增量备份与其已过期的父备份合并
   [--retention-redundancy=retention-redundancy]        ## 留存的完整备份数(默认0,禁用此设置)
   [--retention-window=retention-window]                ## 留存的天数(默认0,禁用此设置)
   [--wal-depth=wal-depth]                              ## 每个时间轴上必须留存的执行PITR能力的最新有效备份数(默认0,禁用此设置)
   [--dry-run]                                          ## 显示所有可用备份的当前状态,不删除或合并过期备份
   [--ttl=interval]                                     ## 从恢复时间开始计算,备份要固定的时间量(支持单位:ms, s, min, h, d(默认为s))
   [--expire-time=time]                                 ## 备份固定失效的时间戳(例如:--expire-time='2020-01-01 00:00:00+03')
   [--compress-algorithm=compress-algorithm][--compress-level=compress-level][--compress]   ## 压缩参数:压缩算法(zlib/pglz/none)/压缩级别(0~9,默认1)/压缩(相当于zlib算法+1压缩级别) 
   [-d dbname] [-h host] [-p port] [-U username] [-w] [-W password]                         ## 连接信息:数据库名/主机名/端口/用户/密码
   [--remote-proto=protocol] [--remote-host=destination]
   [--remote-path=path] [--remote-user=username]
   [--remote-port=port] [--ssh-options=ssh_options]
   [--help]

(1) 例如执行全量备份:

gs_probackup backup -B /home/gbase/gs_bak2021 --instance gs_bak2021_inst -b full -D /gauss/data/db1 -d mydb -p 26000 --progress \

例如返回如下信息:

> --log-directory=/home/gbase/gs_bak2021/log  --log-rotation-size=10GB --log-rotation-age=30d  --log-level-file=info  --log-filename=full_20210111.log \
> --retention-redundancy=2 \
> --compress  \
> --note='This is full backup set.'

(2) 执行增量备份,例如执行:

gs_probackup backup -B /home/gbase/gs_bak2021 --instance gs_bak2021_inst -b PTRACK -D /gauss/data/db1 -d mydb -p 26000 --progress \

例如返回如下信息:

> --log-directory=/home/gbase/gs_bak2021/log  --log-rotation-size=10GB --log-rotation-age=30d  --log-level-file=info  --log-filename=incr2_20210111.log \
> --delete-expired --delete-wal \
> --retention-redundancy=2 \
> --compress  \
> --note='This is the second incremental backup set.'

5.全量恢复,例如执行:

gs_probackup restore -B /home/gbase/backup/backup2023/ --instance=pg_test -D /opt/database/install/data/dn -i S6S7HT --progress -j 4 

其中,-i指定备份文件ID,S6S7HT即为全备的ID。

四、备份数据的管理与维护

1. 定期检查备份数据的有效性,通过恢复测试来验证备份文件的可靠性。
2. 对备份数据进行加密处理,提高数据安全性。
3. 实施备份数据的异地存储策略,以防灾难发生时本地数据全部丢失。


增量备份减少了备份所需的时间和资源,提高了备份效率。但是,在恢复数据时,需要先恢复最近的完全备份,再依次恢复之后的每个增量备份,这可能会延长恢复时间。通过对南大通用GBase 8c数据库进行增量备份的实践操作,可以有效地保证数据的安全,同时提升备份的效率。然而,任何备份策略都需要结合具体的业务场景和数据特点来定制,以确保数据保护方案的最优化。

原文链接:https://www.gbase.cn/community/post/4363
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值