sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL gecomprimeerde archieflogboeken in Windows

Velen hebben geblogd en schandalig aangeboden hoe archieflogboeken in PostgreSQL kunnen worden gecomprimeerd. Ik wil graag een korte versie van mijn kant delen die op Windows staat.

Als archiefopslag een probleem is, kunt u de gecomprimeerde archiefregistratiefunctie in PostgreSQL kiezen.

“archive_command(string)” in $PGDATA/postgresql.conf , is als een shell-opdracht om uit te voeren wat in de string-sectie is doorgegeven om het voltooide bronbestand (WAL-bestandssegment in $PGDATA/pg_xlog te kopiëren) ) naar bestemming(ARCHIEF LOCATIE ). "string" kan van alles zijn, zoals shellscript (batch in Windows) zelf, OS-compressiehulpprogramma's en een speciale tool pg_compresslog. In Windows voert cmd.exe de opdracht uit die is doorgegeven in archive_command "string".

Aangezien we op het Windows-platform solliciteren, zijn de volgende vereisten:

  1. De archiefmap moet volledige postgres-gebruikerstoegang hebben. ("C:Program FilesPostgreSQL9.2archives" in mijn geval)
  2. Vensterversie GZIP-hulpprogramma. Hoewel er talloze goede compressieprogramma's voor Windows-varianten zijn, heb ik voor gzip gekozen omdat het zowel op Linux als Windows wordt ondersteund.
  3. Gzip.exe zou toegang moeten hebben tot Postgres User en ook tot PATH. ("C:Program FilesGnuWin32bin" in mijn geval).

Ervan uitgaande dat alle vereisten aanwezig zijn en de volgende stap het bewerken van het bestand $PGDATA/postgresql.conf en het wijzigen van de archiveringsgerelateerde parameters zou moeten zijn en het cluster opnieuw moet opstarten:

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)

Volgens de PG-documentatie zijn er wijzigingen aangebracht en is het cluster opnieuw gestart, in afwachting dat mijn archieven vanaf nu worden gecomprimeerd. Laten we naar de logs kijken:

2013-07-26 16:07:22 IST LOG:archiefopdracht mislukt met afsluitcode 1
2013-07-26 16:07:22 IST DETAIL:De mislukte archiefopdracht was:"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog
  1. Wat is LENGTH() in MySQL?

  2. PostgreSQL-query erg traag met limiet 1

  3. Hoe kan ik het SQL-uitvoeringsplan in Oracle zien?

  4. De Zombie PerfMon-tellers die nooit sterven!