Linux PostgreSQL 数据备份策略是什么
导读:Linux 上 PostgreSQL 的备份策略 一 策略总览与选择 采用“逻辑备份 + 物理备份 + WAL 连续归档”的组合,兼顾快速全量恢复与细粒度时间点恢复(PITR),并配合定期校验与异地容灾。 备份方式要点对比: pg_du...
Linux 上 PostgreSQL 的备份策略
一 策略总览与选择
- 采用“逻辑备份 + 物理备份 + WAL 连续归档”的组合,兼顾快速全量恢复与细粒度时间点恢复(PITR),并配合定期校验与异地容灾。
- 备份方式要点对比:
- pg_dump/pg_dumpall(逻辑备份):导出为 SQL 脚本或自定义格式(-F c),对业务影响小,适合小中型库、迁移/开发/部分库恢复;自定义格式可用 pg_restore 做选择性恢复。
- pg_basebackup(物理备份):拷贝 PGDATA,支持热备,适合大中型库、快速恢复与PITR基座。
- WAL 归档 + PITR:开启 WAL 归档后,配合基础备份可实现秒级/任意时间点恢复。
- 第三方工具(PgBackRest、Barman、EDB BART):提供增量/块级备份、远程备份、保留策略、集中管理等能力,适合规模化与自动化运维。
- 建议:以物理全量 + WAL 归档为主,按业务保留若干逻辑备份用于迁移/快速对象级恢复。
二 备份方式与关键配置
- 逻辑备份(pg_dump/pg_dumpall)
- 单库:pg_dump -U postgres -d db -F c -f db_$(date +%F).dump
- 全库(含全局对象/角色):pg_dumpall -U postgres -f cluster_$(date +%F).sql
- 恢复:SQL 脚本用 psql;自定义格式用 pg_restore -d db file.dump。
- 物理备份(pg_basebackup)
- 基础备份:pg_basebackup -U postgres -D /backups/base_$(date +%F) -F t -z -P(-F t 生成 tar 包,-z 压缩,-P 显示进度)。
- WAL 归档与 PITR
- 配置 postgresql.conf:
- wal_level = replica
- archive_mode = on
- archive_command = ‘cp %p /path/to/wal_archive/%f’
- 时间点恢复(示例):在恢复目录设置 restore_command 与 recovery_target_time,启动数据库自动回放到指定时间。
- 配置 postgresql.conf:
三 推荐备份方案与保留
- 方案A(通用生产):
- 每日一次 pg_basebackup 全量(保留近 7–14 天);
- WAL 归档持续开启,归档保留覆盖至少最近一次全量至保留窗口;
- 每周一次 pg_dumpall(保留 4–8 周)用于迁移/快速对象级恢复;
- 备份文件加密并同步至异地/对象存储,定期清理过期副本。
- 方案B(中小型与成本敏感):
- 每日 pg_dump 自定义格式做全量(保留 7–30 天);
- 若需 PITR,开启 WAL 归档并至少保留到最近一次全量之后;
- 每周将备份下载/同步到异地,形成低成本异地容灾。
- 自动化与校验:
- 用 cron/systemd 定时执行,输出日志并做失败告警;
- 定期做恢复演练/抽样恢复验证可用性;
- 对敏感备份加密,并配置保留策略与监控告警。
四 恢复流程要点
- 逻辑备份恢复:
- SQL 脚本:createdb db & & psql -d db -f backup.sql;
- 自定义格式:createdb db & & pg_restore -d db backup.dump;可用 --schema-only/–data-only 做选择性恢复。
- 物理备份 + PITR:
- 将基础备份解压/放置到 PGDATA,配置 restore_command 与(可选)recovery_target_time/recovery_target_xid;
- 启动数据库进入恢复,达到目标后执行 pg_wal_replay_resume() 或按配置自动完成恢复。
五 自动化脚本与工具建议
- 示例脚本(逻辑备份 + 7 天保留):
- #!/bin/bash
set -e
DATE=$(date +%F)
BACKUP_DIR=/backups
pg_dump -U postgres -Fc mydb > $BACKUP_DIR/mydb_$DATE.dump
find $BACKUP_DIR -type f -name “mydb_*.dump” -mtime +7 -delete
- #!/bin/bash
- 工具选型:
- PgBackRest / Barman / EDB BART:支持增量/块级备份、远程备份、保留策略、集中监控与恢复编排,适合生产级与多实例环境。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux PostgreSQL 数据备份策略是什么
本文地址: https://pptw.com/jishu/751277.html
