重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛
标题:
pg_basebackup 备份归档日志和WAL日志吗
[打印本页]
作者:
郑全
时间:
2025-9-5 16:49
标题:
pg_basebackup 备份归档日志和WAL日志吗
本帖最后由 郑全 于 2025-9-5 16:51 编辑
pg_basebackup 本身主要用于备份 PostgreSQL 集群的数据文件(基础备份),但对 归档日志
和 WAL 日志
的处理需要结合具体参数配置,并非默认全部备份:
1. 关于 WAL 日志(在线 WAL)
pg_basebackup 可以通过 -X(--wal-method)选项控制是否同步备份期间产生的 WAL 日志:
-X fetch:备份结束时,会将备份过程中生成的 WAL 日志文件(从备份开始到结束期间)一并复制到备份目录的 pg_wal(或 pg_xlog,旧版本)子目录中。
-X stream:备份过程中实时流式接收 WAL 日志,并写入备份目录的 pg_wal 子目录,确保备份与 WAL 日志的连续性。
默认(不指定 -X):不备份备份期间产生的 WAL 日志,仅生成基础数据文件的备份。
这些通过 -X 选项获取的 WAL 日志是 备份期间实时产生的在线 WAL
,用于保证基础备份的一致性,使备份可以作为时间点恢复(PITR)的起点。
2. 关于归档日志(已归档的 WAL)
pg_basebackup 不会主动备份已经归档的 WAL 日志
(即已经被移到归档目录的 WAL 文件)。原因是:
归档日志通常由数据库通过 archive_command 自动归档到独立位置(如远程存储、磁带等),不属于集群数据目录的一部分。
pg_basebackup 仅备份数据库数据目录内的文件,而归档目录通常在数据目录之外,因此不会被包含在基础备份中。
如果需要完整的恢复能力,需手动将 基础备份
+ 备份期间的 WAL 日志
(通过 -X 获取) + 后续的归档日志 结合使用。
总结
pg_basebackup 可通过 -X 选项备份 备份期间产生的在线 WAL 日志,但不会备份 已归档的 WAL 日志。
若要实现时间点恢复(PITR),需额外保留基础备份之后的归档日志,并在恢复时配置 recovery.conf(PostgreSQL 12 前)或 postgresql.conf 中的恢复参数指定 WAL 源
欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2