选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.1 已于 2016 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

F.25. pg_archivecleanup #

pg_archivecleanup设计为在服务器作为备库运行时用作 archive_cleanup_command,以清理 WAL 文件归档(见 第 25.2 节)。 pg_archivecleanup也可作为独立程序使用,以清理 WAL 文件归档。

pg_archivecleanup features include:

  • 用 C 语言编写,因此移植性很好,易于安装

  • 源代码易于修改,并且专门划分出了若干区域,供你按自身需要修改

F.25.1. Usage

要配置备库使用 pg_archivecleanup,请将以下内容放入其 recovery.conf 配置文件中:

archive_cleanup_command = 'pg_archivecleanup archivelocation %r'

其中,archivelocation 是应从中移除 WAL 段文件的目录。

当在archive_cleanup_command中使用时,逻辑上早于%r参数值的所有 WAL 文件都会从archivelocation中移除。这样既能将需要保留的文件数量降到最低,又能保留崩溃后重启能力。如果archivelocation只是该特定备库的临时暂存区,那么使用此参数是合适的;但以下情况下则适合使用:archivelocation打算作为长期 WAL 归档区域,或者多个备库正在从同一归档位置恢复。

The full syntax of pg_archivecleanup's command line is

pg_archivecleanup [ option ... ] archivelocation restartwalfile

作为独立程序使用时,逻辑上早于 restartwalfile 的所有 WAL 文件都会从 archivelocation 中移除。在此模式下,如果你指定的 是 .backup 文件名,则只会使用文件名前缀作为 restartwalfile。这允许你无误地删除某个特定基础备份 之前归档的所有 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 假定 archivelocation 是一个服务器所属用户可读写的目录。

F.25.2. pg_archivecleanup 选项

pg_archivecleanup 接受以下命令行参数:

-d

stderr 上输出大量调试日志。

F.25.3. 示例

在 Linux 或 Unix 系统上,你可以这样使用:

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

其中归档目录实际上位于备库上,因此 archive_command 通过 NFS 访问它, 但这些文件对备库来说是本地的。这将会:

  • cleanup.log 中产生调试输出

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

F.25.4. Supported Server Versions

pg_archivecleanup 设计为在作为独立工具使用时与 PostgreSQL 8.0 及更高版本配合工作,或在作为归档清理命令 使用时与 PostgreSQL 9.0 及更高版本配合工作。

F.25.5. 作者

Simon Riggs

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。