重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 226|回复: 0
打印 上一主题 下一主题

PGBACKREST 自动备份任务

[复制链接]
跳转到指定楼层
楼主
发表于 2026-1-2 19:38:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
配置 pgBackRest 的备份策略,核心是围绕「备份类型选择」「保留策略配置」「触发方式(手动 / 自动)」「优化策略」四大维度展开,
下面提供一套完整、可落地的配置流程和最佳实践:

一、先明确 pgBackRest 的 3 种核心备份类型(策略基础)
pgBackRest 支持 3 种备份类型,是配置策略的前提,需根据业务场景选择组合:
全量备份(full):备份 PostgreSQL 实例的所有数据,是增量 / 差异备份的基础,占用空间最大,频率最低(如每周 1 次)。
差异备份(diff):仅备份自「最近一次全量备份」以来变化的数据,占用空间中等,频率介于全量和增量之间(如每 3 天 1 次)。
增量备份(incr):仅备份自「最近一次任意备份(全量 / 差异 / 增量)」以来变化的数据,占用空间最小,频率最高(如每天 1 次)。
二、核心配置步骤(从基础到高级,层层递进)
步骤 1:前置基础配置(必选,关联 PG 实例 + 备份仓库)
首先需在 pgBackRest 配置文件(默认路径:/etc/pgbackrest/pgbackrest.conf)中完成基础配置,为备份策略提供支撑:
ini
# 1. 关联PostgreSQL实例(stanza名称自定义,此处为demo,对应PG实例)
[regcost]
pg1-path=/pg18/data  # PG实例数据目录(根据实际版本/路径调整)
pg1-user=postgres                # 操作PG实例的系统用户(默认postgres)

# 2. 全局备份仓库配置(对所有实例生效,核心备份存储配置)
[global]
repo1-path=/pg18/pgbackrest   # 备份仓库存储路径(需提前创建,权限给postgres)
repo1-bundle=y                   # 开启备份文件打包,减少零散文件
start-fast=y                     # 快速启动备份,跳过非必要校验
process-max=4                    # 并行处理数(根据CPU核心调整,提升备份速度)
# 可选:开启备份加密(保障数据安全,推荐生产环境配置)
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=你的加密密码(建议复杂字符串,可自定义)
步骤 2:配置核心备份保留策略(关键,控制存储空间)
保留策略是备份策略的核心,用于自动清理过期备份,避免磁盘耗尽,需在[global]模块中配置,核心参数如下:
参数名        作用说明        示例配置
repo1-retention-full        全量备份保留数量(核心,增量 / 差异会随关联的旧全量自动清理)        repo1-retention-full=2(保留 2 个全量备份)
repo1-retention-diff        差异备份保留数量(依赖全量,不配置则默认保留到下一次差异 / 全量备份)        repo1-retention-diff=1(保留 1 个差异备份)
repo1-retention-incr        增量备份保留数量(依赖全量 / 差异,不配置则默认保留到下一次增量 / 差异 / 全量)        repo1-retention-incr=7(保留 7 个增量备份)
repo1-retention-archive        WAL 归档日志保留策略(配合 PITR,通常关联全量备份保留)        repo1-retention-archive=2(关联 2 个全量备份保留归档)
repo1-retention-archive-type        归档保留类型(默认full,即随全量备份清理)        repo1-retention-archive-type=full
示例保留策略配置(添加到 [global] 模块):

[global]
# 保留2个全量备份(基础)
repo1-retention-full=2
# 保留1个差异备份,7个增量备份
repo1-retention-diff=1
repo1-retention-incr=7
# WAL归档随全量备份清理,保障时间点恢复能力
repo1-retention-archive=2
repo1-retention-archive-type=full
步骤 3:触发备份(手动触发 + 自动调度,实现策略落地)
配置好基础和保留策略后,需通过「手动触发」验证有效性,再通过「自动调度」实现无人值守,落地备份策略。
手动触发备份(验证配置)先初始化 stanza(关联 PG 实例和备份仓库,仅需执行 1 次),再触发对应类型备份:

运行
# 1. 初始化stanza(demo为配置文件中的实例名称)
pgbackrest --stanza=regcost stanza-create
# 2. 验证配置有效性
pgbackrest --stanza=regcost check
# 3. 触发全量备份
pgbackrest --stanza=regcost backup --type=full
# 4. 触发差异备份
pgbackrest --stanza=regcost backup --type=diff
# 5. 触发增量备份
pgbackrest --stanza=regcost backup --type=incr
自动调度备份(核心,实现策略自动化)利用 Linux 的crontab工具实现定时备份,根据业务需求规划备份周期(示例:每周日全量、每周三差异、每日增量):

运行
# 1. 编辑postgres用户的crontab(避免权限问题)
su - postgres
crontab -e
# 2. 添加定时任务(按如下格式写入,注释可自定义)
# 每周日凌晨2点 执行全量备份
0 2 * * 0 pgbackrest --stanza=regcost backup --type=full >> /var/log/pgbackrest/full_backup.log 2>&1
# 每周三凌晨2点 执行差异备份
0 2 * * 3 pgbackrest --stanza=regcost backup --type=diff >> /var/log/pgbackrest/diff_backup.log 2>&1
# 每天凌晨1点 执行增量备份(排除周日、周三,避免重复)
0 1 * * 1,2,4,5,6 pgbackrest --stanza=regcost backup --type=incr >> /var/log/pgbackrest/incr_backup.log 2>&1
说明:>> /var/log/pgbackrest/xxx.log 2>&1 用于记录备份日志,方便排查故障,需提前创建/var/log/pgbackrest目录并赋予 postgres 权限。
步骤 4:优化备份策略(可选,提升效率 + 减少业务影响)
在配置文件中添加优化参数,平衡备份性能和系统负载:
归档推送优化(保障 PITR 能力,不影响业务)针对archive-push命令(推送 WAL 归档日志)配置压缩,避免归档卡顿:

[global:archive-push]
compress-level=3  # 压缩级别3(兼顾压缩比和CPU消耗,1-9可选)
备份压缩优化(减少存储空间占用)配置备份文件压缩,可单独指定备份压缩级别:

[global]
compress-level=5  # 备份文件压缩级别5(比归档略高,不影响业务时段)
跳过无效文件(提升备份速度)排除 PG 实例的临时文件、日志文件,避免无效备份:

[regcost]
pg1-exclude=pg_log/*  # 排除日志目录
pg1-exclude=pg_tmp/*  # 排除临时文件目录
三、完整配置示例(生产环境可直接复用)

# 1. PostgreSQL实例配置(stanza=demo)
[regcost]
pg1-path=/pg18/data
pg1-socket-path=/tmp
pg1-user=postgres
pg1-exclude=pg_log/*,pg_tmp/*

# 2. 全局核心配置(备份仓库+保留策略+优化)


[global]
repo1-path=/pg18/pgbackrest
log-path=/var/log/pgbackrest
repo1-bundle=y
repo1-block=y
start-fast=y
process-max=4
compress-type=lz4  
compress-level=5
repo1-retention-full=2
repo1-retention-archive=2
repo1-retention-archive-type=full

[global:archive-push]
compress-level=3

# 可选加密配置
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO
# 备份压缩优化
compress-level=5

# 3. 归档推送专属优化
[global:archive-push]
compress-level=3
四、最佳实践总结
备份周期规划:中小型业务推荐「每周 1 次全量 + 每 3 天 1 次差异 + 每天 1 次增量」;大数据量业务可适当降低全量频率(每 2 周 1 次),增加增量频率(每 12 小时 1 次)。
保留策略原则:全量备份保留数量根据磁盘空间调整(通常 2-4 个),增量 / 差异保留数量匹配业务恢复需求(至少保留 7 天)。
必做验证:配置完成后,先手动触发 1 次全量备份,执行pgbackrest --stanza=demo info查看备份信息,确认配置生效。
冗余备份:生产环境建议配置repo2(第二备份仓库,可本地磁盘 / 远程 NFS),避免单仓库故障导致备份丢失。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 21:19 , Processed in 0.193641 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表