Om arkivlagring är ett problem kan du välja komprimerad arkivloggningsfunktion i PostgreSQL.
"archive_command(string)" i $PGDATA/postgresql.conf , är som ett skalkommando för att utföra det som skickas i strängsektionen för att kopiera den färdiga källfilen (WAL-filsegment i $PGDATA/pg_xlog ) till destination (ARKIVPLATS ). "sträng" kan vara något som liknar skalskriptet (batch i Windows) självt, OS-komprimeringsverktyg och ett specialverktyg pg_compresslog. I Windows kommer cmd.exe att köra kommandot som skickas i archive_command “string”.
Eftersom vi ansöker på Windows-plattformen är förhandsbegäran:
- Arkivkatalogen bör ha full postgres-användaråtkomst. ("C:Program FilesPostgreSQL9.2archives" i mitt fall)
- Fönsterversionens GZIP-verktyg. Även om det finns många bra komprimeringsverktyg för Windows-varianter, valde jag gzip eftersom det stöds både på Linux och Windows.
- Gzip.exe bör ha åtkomst till Postgres User och även i PATH. ("C:Program FilesGnuWin32bin" i mitt fall).
Förutsatt att alla förutsättningar är på plats och nästa steg bör vara att redigera filen $PGDATA/postgresql.conf och ändra de arkiveringsrelaterade parametrarna och starta om klustret:
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)
Enligt PG-dokumentationen har ändringar gjorts och startat om klustret, förutseende att mina arkiv härifrån kommer att komprimeras en. Låt oss titta på loggarna:
2013-07-26 16:07:22 IST LOG:arkivkommandot misslyckades med exitkod 1
2013-07-26 16:07:22 IST DETALJ:Det misslyckade arkivkommandot var:"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog