PostgreSQL 数据库备份利器:pg_probackup 终极指南

【免费下载链接】pg_probackup Backup and recovery manager for PostgreSQL 【免费下载链接】pg_probackup 项目地址: https://gitcode.com/gh_mirrors/pg/pg_probackup

pg_probackup 是一款功能强大的 PostgreSQL 数据库集群备份与恢复管理工具,专为定期备份 PostgreSQL 实例而设计,能在系统发生故障时快速恢复服务器。它支持 PostgreSQL 13 至 18 版本,凭借多种高级特性成为数据库备份的理想选择。

为什么选择 pg_probackup?核心优势解析 ✨

与其他备份解决方案相比,pg_probackup 提供了多项关键优势,帮助用户应对海量数据备份挑战:

  • 增量备份与恢复:支持页面级增量备份和恢复,通过三种增量模式(PAGE、DELTA、PTRACK)显著节省磁盘空间并提升操作速度
  • 备份合并功能:实现"增量更新备份"策略,无需定期执行完整备份,大幅降低维护成本
  • 自动化验证:自动进行数据一致性检查,支持无需实际恢复的备份验证
  • 灵活的保留策略:基于恢复时间或备份数量配置保留规则,支持设置备份的生存时间(TTL)
  • 多线程并行处理:备份、恢复、合并、删除等操作均可并行执行,提升效率
  • 数据压缩与去重:压缩存储备份数据,对非数据文件(如_vm、_fsm)进行去重处理
  • 远程操作支持:可对远程 PostgreSQL 实例进行备份或从远程恢复备份
  • 从 standby 备份:通过从备用服务器备份减轻主库负载
  • 外部目录备份:支持备份 PGDATA 之外的文件和目录,如脚本、配置文件等
  • 部分恢复:可选择性恢复指定数据库或排除特定数据库

备份类型全解析:选择最适合你的策略 📊

pg_probackup 支持完整备份和增量备份两种类型,满足不同场景需求:

完整备份(Full Backup)

完整备份包含恢复数据库集群所需的所有数据文件,适用于作为备份链的基础。虽然需要较多存储空间,但提供了最完整的恢复基础。

增量备份(Incremental Backup)

增量备份仅存储自上次备份以来更改的数据,显著减小备份大小并加快备份速度。pg_probackup 支持三种增量模式:

PAGE 备份

通过扫描归档中的所有 WAL 文件,仅包含 WAL 记录中提及的页面。需要自上次备份以来的所有 WAL 文件,但仍能节省存储空间。

DELTA 备份

读取 PGDATA 目录中的所有数据文件,仅复制自上次备份后更改的页面。无需持续归档,但可能产生与完整备份相当的只读 I/O 压力。

PTRACK 备份

利用 PostgreSQL 的实时页面更改跟踪功能,通过特殊的 PTRACK 位图标记更改页面。跟踪会给数据库服务器带来轻微开销,但能显著加速增量备份。

快速上手:安装与基本配置 🚀

安装准备

pg_probackup 可通过多种方式安装,包括预编译安装包和源码编译。对于 Linux 系统,推荐参考官方文档的安装指南进行操作。

源码编译(Linux)

若需要从源码编译,需先准备 PostgreSQL 安装环境和源代码树:

# 对于 18 版本以下
make USE_PGXS=1 PG_CONFIG=<path_to_pg_config> top_srcdir=<path_to_PostgreSQL_source_tree>

# 对于 18 版本,需先应用补丁
cd <path_to_PostgreSQL_source_tree>
patch -p1 < /data/web/disk1/git_repo/gh_mirrors/pg/pg_probackup/patches/REL_18_STABLE_pg_probackup.patch
# 然后重新编译安装 PostgreSQL

基本配置

安装完成后,需要进行简单配置以开始使用 pg_probackup:

  1. 创建备份目录:pg_probackup init -B /path/to/backup_dir
  2. 注册数据库实例:pg_probackup add-instance -B /path/to/backup_dir -D /path/to/pgdata --instance instance_name
  3. 配置备份选项:可通过配置文件或命令行参数设置压缩级别、并行线程数等

常用操作指南:从备份到恢复 🔧

创建完整备份

pg_probackup backup -B /path/to/backup_dir --instance instance_name -b full

创建增量备份(PTRACK 模式)

pg_probackup backup -B /path/to/backup_dir --instance instance_name -b ptrack

查看备份列表

pg_probackup show -B /path/to/backup_dir --instance instance_name

恢复数据库

pg_probackup restore -B /path/to/backup_dir --instance instance_name -D /path/to/new_pgdata --backup-id <backup_id>

合并备份

pg_probackup merge -B /path/to/backup_dir --instance instance_name --backup-id <backup_id>

验证备份

pg_probackup validate -B /path/to/backup_dir --instance instance_name --backup-id <backup_id>

高级功能:提升备份策略的灵活性 🔄

备份保留策略

通过设置保留策略自动管理备份生命周期:

# 保留最近 7 天的备份
pg_probackup set-config -B /path/to/backup_dir --instance instance_name --retention-redundancy 7 --retention-window 7

远程备份

支持通过 SSH 进行远程备份:

pg_probackup backup -B /path/to/backup_dir --instance remote_instance -b full --remote-user postgres --remote-host remote_host

外部目录备份

配置备份 PGDATA 之外的重要文件:

# 在配置文件中添加
[external_dirs]
dir1 = /path/to/scripts
dir2 = /path/to/configs

注意事项与最佳实践 ⚠️

  1. 兼容性要求:备份和恢复的服务器必须具有相同的 block_size、wal_block_size 参数和主版本号
  2. 版本匹配:远程操作时,本地和远程的 pg_probackup 版本必须相同
  3. PTRACK 支持:对于 vanilla PostgreSQL,需要安装 ptrack 扩展
  4. 定期验证:建议定期使用 validate 命令验证备份的完整性
  5. 测试恢复:定期测试恢复流程,确保备份可用
  6. 监控备份:结合监控工具跟踪备份状态,及时发现问题

总结:让 PostgreSQL 备份更简单、更高效 🎯

pg_probackup 凭借其丰富的功能和灵活的配置选项,为 PostgreSQL 数据库提供了全面的备份解决方案。无论是小型应用还是大型企业环境,都能通过 pg_probackup 实现可靠、高效的备份策略,确保数据安全和业务连续性。

通过合理利用增量备份、并行处理和压缩等功能,可以在最小化资源消耗的同时,构建健壮的备份系统。无论你是数据库管理员还是开发人员,pg_probackup 都是保护 PostgreSQL 数据的必备工具。

【免费下载链接】pg_probackup Backup and recovery manager for PostgreSQL 【免费下载链接】pg_probackup 项目地址: https://gitcode.com/gh_mirrors/pg/pg_probackup

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐