アーカイブストレージが懸念される場合は、PostgreSQLの圧縮アーカイブロギング機能を選択できます。
$ PGDATA / postgresql.conf の「archive_command(string)」 は、文字列セクションで渡された内容を実行して、完成したソースファイル( $ PGDATA / pg_xlog のWALファイルセグメント)をコピーするシェルコマンドのようなものです。 )目的地(アーカイブの場所 )。 「文字列」は、シェルスクリプト(Windowsではバッチ)自体、OS圧縮ユーティリティ、および特別なツールpg_compresslogのようなものにすることができます。 Windowsでは、cmd.exeはarchive_command「string」で渡されたコマンドを実行します。
Windowsプラットフォームに適用しているため、前提条件は次のとおりです。
- アーカイブディレクトリには、完全なpostgresユーザーアクセスが必要です。 (私の場合は「C:ProgramFilesPostgreSQL9.2archives」)
- ウィンドウバージョンのGZIPユーティリティ。優れたWindowsバリアント圧縮ユーティリティは数多くありますが、LinuxとWindowsの両方でサポートされているため、gzipを選択しました。
- Gzip.exeは、PostgresユーザーとPATHにアクセスできる必要があります。 (私の場合は「C:ProgramFilesGnuWin32bin」)。
すべての前提条件が整っていて、次のステップは$ PGDATA / postgresql.confファイルを編集し、アーカイブ関連のパラメーターを変更してクラスターを再起動する必要があると仮定します。
wal_level=archive
archive_mode=on
archive_command = '"C:\Program Files\GnuWin32\bin\gzip.exe -1 " < "%p" > "C:\Program Files\PostgreSQL\9.2\archives\%f.gz"'
c:Program FilesPostgreSQL9.2bin>pg_ctl.exe -D ..data start (You can also start from services.msc)
PGのドキュメントによると、変更が加えられ、クラスターが再起動されました。これから、私のアーカイブが圧縮されることを期待しています。ログを見てみましょう:
2013-07-26 16:07:22 ISTログ:アーカイブコマンドが終了コード1で失敗しました
2013-07-26 16:07:22 IST詳細:失敗したアーカイブコマンドは次のとおりです: "" "C :Program FilesGnuWin32bingzip.exe "-1 <" pg_xlog