Postgresql 中文操作指南
Description
pg_archivecleanup 设计为用作 archive_cleanup_command ,用以在运行备用服务器时清理 WAL 文件存档(参见 Section 27.2 )。pg_archivecleanup 也可用作清理 WAL 文件存档的独立程序。
要配置备用服务器以使用 pg_archivecleanup,请将其放入其 postgresql.conf 配置文件中:
archive_cleanup_command = 'pg_archivecleanup archivelocation %r'
其中 archivelocation 是要从中删除 WAL 段文件的目录。
在 archive_cleanup_command 中使用时,所有逻辑上在 %r 参数值之前的所有 WAL 文件都将从 archivelocation 中删除。这最大限度减少了需要保留的文件数,同时保留崩溃重启功能。如果 archivelocation 是此特定备用服务器的临时暂存区,那么使用此参数是合适的,但当 not 时 archivelocation 旨在作为长期 WAL 存档区,或当多个备用服务器从同一存档位置恢复时,使用此参数不合适。
在用作独立程序时,逻辑上在 oldestkeptwalfile 之前的 WAL 文件都将从 archivelocation 中删除。在此模式下,如果您指定了 .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
-
提供将在决定是否删除所有文件名之前从所有文件名中剥离的后缀。这通常对于清理存储过程中已压缩的存档非常有用,压缩程序为此已添加了一个后缀。例如: -x .gz 。
-
-
-?_—help_
-
显示关于 pg_archivecleanup 命令行参数的帮助,并退出。
-