pg_archivecleanup

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 付録 F. 追加で提供されるモジュール | 早送り | 次のページ

# F.25. pg_archivecleanup

pg_archivecleanupは、スタンバイサーバとして動作している際のWALファイルのアーカイブを消去するための`archive_cleanup_command`として使用されるように設計されています（項25.2参照）。 同時に、pg_archivecleanupはWALファイルのアーカイブを消去するためのスタンドアローンのプログラムとしても利用することができます。

pg_archivecleanupの機能は、

- Cで記述されており、移植性が高く、インストールが容易です。

- 各自のニーズに合わせて変更するための明確に定められた部分があるため、ソースコードの変更が容易です。

## F.25.1. 利用方法

pg_archivecleanupを使うためにスタンバイサーバを設定するには、以下を`recovery.conf`設定ファイルに記述します。

    archive_cleanup_command = 'pg_archivecleanup archivelocation %r'

`archivelocation`は、WALセグメントファイルを削除するディレクトリです。

`archive_cleanup_command`で使用される場合、論理的に`%r`より前のすべてのWALファイルは`archivelocation`から削除されます。 これによって、クラッシュ―リスタートの機能を維持するための、保持しなければならないファイル数を最小限にします。 このパラメータの使用は、`archivelocation`がスタンバイサーバにおいて短期的な保存場所となっている場合には適切ですが、`archivelocation`を長期的なWALアーカイブ領域として使っている場合、または複数のスタンバイサーバが同一のアーカイブログの場所からリカバリしている場合には適切ではありません。

pg_archivecleanupのコマンドラインの完全な文法は

    pg_archivecleanup [ option ... ] archivelocation restartwalfile

スタンドアローンプログラムとして使用される場合、`restartwalfile`より論理的に前のWALファイルは、すべて`archivelocation`から削除されます。 このモードでは、`.backup`ファイルが指定されると、そのプレフィックス部だけが`restartwalfile`として使用されます。 この機能は、エラーを起こすことなく特定のベースバックアップより前のすべての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. サポートされるサーバのバージョン

pg_archivecleanupは、PostgreSQL 8.0 とそれ以降において、スタンドアローンユーティリティとして動作するように設計されています。 また、PostgreSQL 9.0 とそれ以降においてはアーカイブのクリーンナップコマンドとして動作するように設計されています。

## F.25.5. 作者

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

前のページ | ホーム | 次のページ
パスワード検査 | 上に戻る | pgbench