On this page
pg_archivecleanup
pg_archivecleanup —清理 PostgreSQL WAL 归档文件
Synopsis
pg_archivecleanup
[ option
...] archivelocation
oldestkeptwalfile
Description
pg_archivecleanup 设计为用作archive_cleanup_command
,以在作为备用服务器运行时清除 WAL 文件存档(请参阅Section 26.2)。 pg_archivecleanup 也可以用作独立程序来清理 WAL 文件 Files。
要将备用服务器配置为使用 pg_archivecleanup,请将其放入其recovery.conf
配置文件中:
archive_cleanup_command = 'pg_archivecleanup archivelocation %r'
其中* archivelocation
*是应从其中删除 WAL 段文件的目录。
在archive_cleanup_command中使用时,从archivelocation
中删除逻辑上位于%r
参数值之前的所有 WAL 文件。这样可以最大限度地减少需要保留的文件数量,同时保留崩溃重新启动功能。如果 archivelocation
是此特定备用服务器的临时暂存区,则使用此参数是适当的,但当 archivelocation
*用作长期 WAL 归档区时,或者当多个备用服务器从中恢复时,不是相同的存档位置。
当用作独立程序时,从archivelocation
*中删除所有逻辑上位于oldestkeptwalfile
之前的 WAL 文件。在这种模式下,如果指定.partial
或.backup
文件名,则仅文件前缀将用作 oldestkeptwalfile
*。 .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 假定* archivelocation
*是服务器所有者用户可读写的目录。
Options
pg_archivecleanup 接受以下命令行参数:
-d
- 在
stderr
上打印大量调试日志记录输出。
- 在
-n
- 打印将在
stdout
上删除的文件的名称(执行空运行)。
- 打印将在
-V
--version
- 打印 pg_archivecleanup 版本并退出。
-x
extension
- 提供一个 extensions,该 extensions 将从所有文件名中剥离,然后再决定是否应删除它们。这通常对于清理在存储过程中已压缩的存档很有用,因此压缩程序添加了 extensions。例如:
-x .gz
。
- 提供一个 extensions,该 extensions 将从所有文件名中剥离,然后再决定是否应删除它们。这通常对于清理在存储过程中已压缩的存档很有用,因此压缩程序添加了 extensions。例如:
-?
--help
- 显示有关 pg_archivecleanup 命令行参数的帮助,然后退出。
Notes
pg_archivecleanup 旨在与 PostgreSQL 8.0 及更高版本一起用作独立 Util,或与 PostgreSQL 9.0 及更高版本一起用作存档清理命令。
pg_archivecleanup 用 C 编写,具有易于修改的源代码,具有专门指定的部分,可以根据您的需要进行修改
Examples
在 Linux 或 Unix 系统上,您可以使用:
archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
存档目录实际位于备用服务器上的位置,以便archive_command
通过 NFS 对其进行访问,但是文件在备用服务器本地。这将:
在
cleanup.log
中产生调试输出从存档目录中删除不再需要的文件