PostgreSQL 9.1.5文書 | ||||
---|---|---|---|---|
前のページ | 巻戻し | 付録 F. 追加で提供されるモジュール | 早送り | 次のページ |
pg_archivecleanupは、スタンバイサーバとして動作している際のWALファイルのアーカイブを消去するためのarchive_cleanup_commandとして使用されるように設計されています(項25.2参照)。 同時に、pg_archivecleanupはWALファイルのアーカイブを消去するためのスタンドアローンのプログラムとしても利用することができます。
pg_archivecleanupの機能は、
Cで記述されており、移植性が高く、インストールが容易です。
各自のニーズに合わせて変更するための明確に定められた部分があるため、ソースコードの変更が容易です。
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がサーバを実行しているユーザによって読み書き可能なディレクトリであるものと仮定しています。
LinuxやUnixのシステムでは、以下のように使います。
archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
アーカイブディレクトリは物理的にはスタンバイサーバ上に配置されていますので、archive_commandはNFSを経由してアーカイブディレクトリにアクセスしますが、それらのファイルはスタンバイサーバにとってはローカルファイルです。 この設定では、
デバッグ出力をcleanup.logに生成します。
アーカイブディレクトリの中から、不要になったファイルを削除します。
pg_archivecleanupは、PostgreSQL 8.0 とそれ以降において、スタンドアローンユーティリティとして動作するように設計されています。 また、PostgreSQL 9.0 とそれ以降においてはアーカイブのクリーンナップコマンドとして動作するように設計されています。
Simon Riggs <simon@2ndquadrant.com>