使用WAL-G进行PostgreSQL的持续备份

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

本文介绍了如何使用WAL-G工具在Postgres数据库中恢复特定时间点的状态。WAL-G是一个开源的持续归档工具,支持物理备份和WAL归档的存储与检索。文章详细说明了安装、配置环境变量、启用WAL归档、创建物理备份及灾难恢复的步骤,包括如何从S3桶中恢复数据。定期备份可以加快恢复速度,确保数据安全。

🔎

延伸解读

WAL-G 在备份体系中的角色

WAL-G 是一个开源的持续归档工具,主要处理物理备份和 WAL 归档的存储与检索。它本身不替代 PostgreSQL 的备份机制,而是与数据库的 archive_command 和 restore_command 配合,将归档和备份推送到云存储(如 S3)。这种设计让备份与恢复流程更自动化,适合需要快速灾难恢复的场景。

定期物理备份对恢复速度的影响

文章指出,定期执行物理备份可以加快整体恢复速度。因为恢复时只需重放自最近一次物理备份之后产生的 WAL 归档文件。如果物理备份较旧,需要重放的 WAL 文件数量会更多,恢复时间相应延长。因此,设置每日 CRON 任务进行物理备份是一种平衡存储与恢复效率的实用做法。

时间点恢复的配置要点

WAL-G 支持时间点恢复(PITR),通过设置 recovery_target_time 和 recovery_target_action 参数,可以将数据库恢复到指定时刻。需要注意的是,恢复目标时间必须与原始实例的时区一致,通常为 UTC。这要求操作者准确记录灾难发生的时间,并确保恢复环境的时间设置正确,否则可能无法精确恢复到预期状态。

恢复流程中的关键步骤

灾难恢复时,需要在新实例上配置相同的环境变量(但无需 PGPASSWORD),停止数据库,设置 restore_command 以从 S3 拉取 WAL 归档,然后删除原数据目录并用 backup-fetch 获取最新物理备份。最后创建 recovery.signal 文件并启动数据库,Postgres 将进入恢复模式。这些步骤顺序严格,缺少任一步骤都可能导致恢复失败。

❓

Q&A

WAL-G是什么,它的主要功能是什么?

WAL-G是一个开源的持续归档工具,主要用于在Postgres数据库中恢复物理备份和WAL归档。

如何安装和配置WAL-G?

安装WAL-G需要确保相关软件包已安装,并配置AWS凭证和环境变量,包括S3桶的路径和数据库密码。

启用WAL归档的步骤是什么?

启用WAL归档需要在Postgres配置文件中设置archive_mode和archive_command,并重启数据库以使更改生效。

如何进行灾难恢复?

灾难恢复包括配置环境变量、停止数据库、设置恢复命令、删除当前数据目录并从S3桶恢复最新的物理备份。

定期备份的好处是什么?

定期备份可以加快恢复速度,减少恢复时需要重放的WAL归档文件数量,从而提高数据安全性。

如何实现时间点恢复(PITR)?

实现时间点恢复需要设置recovery_target_time和recovery_target_action,并确保时区与原实例匹配。

🏷️

标签

➡️

继续阅读