使用 PgBackRest 进行增量备份和 WAL 归档之间的区别
Difference between incremental backup and WAL archiving with PgBackRest
据我了解
- WAL 归档在生成 WAL 文件时将 WAL 日志推送到存储位置
- 增量备份正在推送自上次备份以来创建的所有 WAL 文件
所以,假设我的 WAL 归档设置正确
- 为什么我需要增量备份?
- 增量备份的成本不应该几乎为零吗?
我发现的大多数文档都侧重于高级实现(例如,如何设置 WAL 归档或增量备份)与内部(触发增量备份时会发生什么)
我的问题可能可以通过对某些文档的 link 来解决,但是我的 google-fu 到目前为止让我失望了
备份不是 WAL 文件的副本,它们是集群的整个数据目录的副本。正如 docs 中所说,增量备份包含:
those database cluster files that have changed since the last backup (which can be another incremental backup, a differential backup, or a full backup)
单独使用 WAL 不足以恢复数据库;他们只记录对集群文件的更改,因此他们需要备份作为起点。
定期备份(增量或其他方式)的需要主要与恢复时间有关。从技术上讲,您 可以 只保留原始的完整备份和多年的 WAL 文件,但在发生故障时重放它们可能需要数小时或数天,而且您可能不能不能容忍那种停机时间。
新备份还意味着您可以安全地丢弃任何旧的 WAL(假设您仍然不需要它们来进行时间点恢复),这意味着要存储的数据更少,并且您要确保其完整性的数据更少靠着才能恢复。
如果您想了解更多关于 pgBackRest 实际上在做什么,Postgres docs.
据我了解
- WAL 归档在生成 WAL 文件时将 WAL 日志推送到存储位置
- 增量备份正在推送自上次备份以来创建的所有 WAL 文件
所以,假设我的 WAL 归档设置正确
- 为什么我需要增量备份?
- 增量备份的成本不应该几乎为零吗?
我发现的大多数文档都侧重于高级实现(例如,如何设置 WAL 归档或增量备份)与内部(触发增量备份时会发生什么)
我的问题可能可以通过对某些文档的 link 来解决,但是我的 google-fu 到目前为止让我失望了
备份不是 WAL 文件的副本,它们是集群的整个数据目录的副本。正如 docs 中所说,增量备份包含:
those database cluster files that have changed since the last backup (which can be another incremental backup, a differential backup, or a full backup)
单独使用 WAL 不足以恢复数据库;他们只记录对集群文件的更改,因此他们需要备份作为起点。
定期备份(增量或其他方式)的需要主要与恢复时间有关。从技术上讲,您 可以 只保留原始的完整备份和多年的 WAL 文件,但在发生故障时重放它们可能需要数小时或数天,而且您可能不能不能容忍那种停机时间。
新备份还意味着您可以安全地丢弃任何旧的 WAL(假设您仍然不需要它们来进行时间点恢复),这意味着要存储的数据更少,并且您要确保其完整性的数据更少靠着才能恢复。
如果您想了解更多关于 pgBackRest 实际上在做什么,Postgres docs.