Jika penyimpanan arsip menjadi perhatian, maka Anda dapat memilih fitur logging arsip terkompresi di PostgreSQL.
“archive_command(string)” di $PGDATA/postgresql.conf , seperti perintah shell untuk mengeksekusi apa yang diteruskan di bagian string untuk menyalin file sumber yang telah selesai (segmen file WAL di $PGDATA/pg_xlog ) ke tujuan(LOKASI ARSIP ). "string" bisa berupa apa saja seperti skrip shell (batch di Windows) itu sendiri, utilitas kompresi OS, dan alat khusus pg_compresslog. Di Windows, cmd.exe akan menjalankan perintah yang diteruskan di archive_command “string”.
Karena kami mendaftar di platform Windows, prasyaratnya adalah:
- Direktori arsip harus memiliki akses pengguna postgres penuh. (“C:Program FilesPostgreSQL9.2archives” dalam kasus saya)
- Utilitas GZIP versi jendela. Meskipun ada banyak utilitas kompresi varian windows yang bagus, saya memilih gzip karena didukung baik di Linux &Windows.
- Gzip.exe harus memiliki akses ke Pengguna Postgres dan juga di PATH. (“C:Program FilesGnuWin32bin” dalam kasus saya).
Dengan asumsi semua prasyarat sudah ada dan langkah selanjutnya adalah mengedit file $PGDATA/postgresql.conf dan mengubah parameter terkait pengarsipan dan memulai ulang cluster:
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)
Sesuai dokumentasi PG, perubahan telah dibuat dan memulai kembali cluster, mengantisipasi dari sini arsip saya akan dikompresi. Mari kita lihat lognya:
2013-07-26 16:07:22 IST LOG:perintah arsip gagal dengan kode keluar 1
26-07-2013 16:07:22 IST DETAIL:Perintah arsip yang gagal adalah:"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog