南大通用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技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容