pg_archivecleanup

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# pg_archivecleanup

## 名称

pg_archivecleanup -- 清理PostgreSQL WAL归档文件

## 大纲

`pg_archivecleanup` [`option`...] `archivelocation` `oldestkeptwalfile`

## 描述

pg_archivecleanup被设计来用作`archive_cleanup_command`， 在作为备用服务器运行时清理WAL文件归档（参阅第 25.2 节）。 pg_archivecleanup也可以用作一个单独的程序清理WAL文件归档。

要配置备用服务器使用pg_archivecleanup，将下列代码放入 `recovery.conf`配置文件中：

    archive_cleanup_command = 'pg_archivecleanup archivelocation %r'

这里的`archivelocation`是应该被移除的WAL段文件的目录。

当在archive_cleanup_command中使用时，所有逻辑上在`%r` 参数值之前的WAL文件都将从`archivelocation`中移除。 这在保存崩溃-重启能力时，最小化了需要保留的文件数量。 如果`archivelocation`是这个特殊的备用服务器的瞬态暂存区域， 那么使用这个参数是合适的，但是在`archivelocation` 用作长期WAL归档区，或者多个备用服务器是从同一个归档位置恢复而来的时， 是不合适的。

当用作独立程序时，所有逻辑上在`oldestkeptwalfile` 之前的WAL文件都将从`archivelocation`中移除。 在这个模式中，如果你声明一个`.backup`文件名， 那么只有文件前缀将被用作`oldestkeptwalfile`。 这允许你无误的删除所有在一个特定基础备份之前归档的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` 是一个服务器所有者用户可读和可写的目录。

## 选项

pg_archivecleanup接受下列命令行参数：

`-d`

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

`-n`

  打印将要在`stdout`上删除的文件名（执行一个空运行）。

`-V`
`--version`

  打印pg_archivecleanup的版本并退出。

`-x` `extension`

  当该程序用作单独的工具时，提供一个扩展，该扩展将在决定文件是否应该被删除之前， 提取所有的文件名。这通常在清理在存储时已经压缩了的归档时是有用的， 并且因此有一个由压缩程序添加的扩展。例如：`-x.gz`。

  请注意，传递到该程序的`.backup`文件名不应该包含该扩展。

`-?`
`--help`

  显示关于pg_archivecleanup命令行参数的帮助信息，然后退出。

## 注意

当用作单独的工具时，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`中产生调试输出

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

## 作者

Simon Riggs `<simon@2ndquadrant.com>`

## 又见

pg_standby

上一页 | 起始页 | 下一页
服务器端应用程序 | 上一级 | pg_standby