【异地备份】pgbackrest如何将PostgreSQL数据库备份到S3中?

0    111    1

Tags:

👉 本文共约3416个字,系统预计阅读时间或需13分钟。

简介

pgBackRest 是一个强大的开源备份和恢复工具,专为 PostgreSQL 数据库设计。它提供了高效、可靠的备份与恢复能力,并支持多种存储后端(如本地磁盘、网络存储、S3 兼容存储等)。

使用场景

  • 数据库备份到本地或远程存储。
  • 基于时间点的灾难恢复(PITR)。
  • 数据库升级或迁移时的数据保护。
  • 与 S3 或类似服务的集成,用于云备份。

pgBackRest 的核心功能

  1. 高效备份

    • 增量备份:只备份自上次完整备份以来更改的数据块,减少存储空间和备份时间。
    • 并行处理:支持多线程备份和恢复,提高速度。
    • 数据压缩:备份数据可进行压缩以节省存储空间。
    • 流复制备份:无需停机即可从主库或从库进行备份。
  2. 可靠恢复

    • 支持 PITR(Point-in-Time Recovery,时间点恢复)。
    • 可以恢复到指定的事务时间点或检查点。
    • 提供一致性检查以确保备份数据的完整性。
  3. 灵活存储支持

    • 支持本地文件系统、NFS、S3 兼容存储(如 AWS S3、MinIO)。
    • 支持多个存储库(例如本地和云存储同时备份)。
  4. 备份加密

    • 使用 AES-256-CBC 加密备份数据,确保数据安全。
  5. 备份管理

    • 自动删除过期的备份(通过保留策略管理)。
    • 可管理多个 PostgreSQL 实例的备份(基于 Stanza)。
  6. 监控与日志

    • 提供详细的日志记录,便于问题排查。
    • 提供统计信息,用于监控备份性能。

pgBackRest 的优点

  • 高性能:并行处理和增量备份提升了备份和恢复速度。
  • 稳定可靠:确保备份的一致性和完整性,适用于大规模数据库。
  • 灵活性:支持多种存储后端和配置方式,适应不同的部署场景。
  • 简洁配置:通过配置文件和命令行选项,便于集成和管理。

pgBackRest 的主要组件

  1. Stanza

    • 一个 Stanza 代表一个 PostgreSQL 实例。
    • 用于区分和管理多个数据库实例的备份。
  2. Repository

    • 存储备份数据的物理位置,可以是本地路径或 S3 存储。
    • 支持配置多个存储库。
  3. 备份类型

    • Full(全量备份):备份整个数据库。
    • Differential(差异备份):基于最近的全量备份,仅备份变化的数据。
    • Incremental(增量备份):基于最近的备份(全量或差异),仅备份变化的数据。

常用命令

  1. 初始化 Stanza

  2. 检查配置

  3. 进行备份

  4. 查看备份信息

  5. 恢复数据

使用 pgBackRest 将数据备份到 S3 存储可以通过配置 S3 存储库完成,具体步骤如下:


安装pgBackRest

确保 pgBackRest 已经安装,并且支持 S3。需要确认 libcurl 支持已编译到 pgBackRest 中。


创建 S3 存储桶

登录到 S3 服务(如 AWS S3 或兼容的 S3 服务,如 MinIO),创建一个存储桶,用于存储备份数据。

注意:必须配置https访问,否则pgBackRest不能使用。


配置 pgBackRest

修改 pgbackrest.conf 文件,为存储库添加 S3 配置。

配置文件路径

  • 全局配置/etc/pgbackrest/pgbackrest.conf
  • 本地配置/var/lib/pgbackrest/pgbackrest.conf

配置示例

以下是将备份存储到 S3 的配置示例:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复