支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:开发版
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0

pg_archivecleanup

pg_archivecleanup — 清理 PostgreSQL WAL 归档文件

概要

pg_archivecleanup [选项...] 归档位置 最早保留的WAL文件

描述

pg_archivecleanup 设计为用作 archive_cleanup_command,以便在作为备用服务器运行时清理 WAL 文件归档(请参阅第 26.2 节)。pg_archivecleanup 也可以用作独立的程序来清理 WAL 文件归档。

要配置备用服务器以使用 pg_archivecleanup,请将其放入其 postgresql.conf 配置文件中

archive_cleanup_command = 'pg_archivecleanup archivelocation %r'

其中 归档位置 是应从中删除 WAL 段文件的目录。

当在 archive_cleanup_command 中使用时,逻辑上早于 %r 参数值的所有 WAL 文件都将从 归档位置 中删除。这可以最大限度地减少需要保留的文件数量,同时保留崩溃重启的能力。如果 归档位置 是此特定备用服务器的临时暂存区,则使用此参数是合适的,但是当 归档位置 旨在作为长期 WAL 归档区域,或者当多个备用服务器从同一归档位置恢复时,适用。

当用作独立程序时,所有逻辑上早于 最早保留的WAL文件 的 WAL 文件都将从 归档位置 中删除。在此模式下,如果您指定 .partial.backup 文件名,则仅使用文件前缀作为 最早保留的WAL文件。这种对 .backup 文件名的处理允许您删除特定基本备份之前归档的所有 WAL 文件,而不会出错。例如,以下示例将删除早于 WAL 文件名 000000010000003700000010 的所有文件

pg_archivecleanup -d archive 000000010000003700000010.00000020.backup

pg_archivecleanup:  keep WAL file "archive/000000010000003700000010" and later
pg_archivecleanup:  removing file "archive/00000001000000370000000F"
pg_archivecleanup:  removing file "archive/00000001000000370000000E"

pg_archivecleanup 假定 归档位置 是服务器所有者用户可读写的目录。

选项

pg_archivecleanup 接受以下命令行参数

-b
--clean-backup-history

同时删除备份历史文件。有关备份历史文件的详细信息,请参阅第 25.3.2 节

-d
--debug

stderr 上打印大量调试日志输出。

-n
--dry-run

stdout 上打印将被删除的文件名称(执行空运行)。

-V
--version

打印 pg_archivecleanup 版本并退出。

-x 扩展名
--strip-extension=扩展名

提供一个扩展名,在决定是否删除文件之前,将从所有文件名中去除该扩展名。这通常用于清理在存储期间被压缩的归档文件,因此压缩程序会添加扩展名。例如:-x .gz

-?
--help

显示有关 pg_archivecleanup 命令行参数的帮助,然后退出。

环境

环境变量 PG_COLOR 指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

注意

当用作独立实用程序时,pg_archivecleanup 设计为与 PostgreSQL 8.0 及更高版本配合使用,当用作归档清理命令时,则与 PostgreSQL 9.0 及更高版本配合使用。

pg_archivecleanup 使用 C 语言编写,具有易于修改的源代码,其中专门指定了用于根据您自己的需求进行修改的部分

示例

在 Linux 或 Unix 系统上,您可以使用

archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'

其中归档目录物理上位于备用服务器上,以便 archive_command 通过 NFS 访问它,但这些文件对于备用服务器是本地的。这将

  • cleanup.log 中生成调试输出

  • 从归档目录中删除不再需要的文件

提交更正

如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用此表单来报告文档问题。