sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL komprimerede arkivlogfiler i Windows

Mange har blogget og tilbudt grelt om, hvordan man komprimerer arkivlogfiler i PostgreSQL, jeg ønsker at dele en af ​​en kort version fra min side, som er på Windows.

Hvis arkivlagring er bekymring, så kan du vælge komprimeret arkivlogningsfunktion i PostgreSQL.

"archive_command(string)" i $PGDATA/postgresql.conf , er som en shell-kommando til at udføre det, der sendes i strengsektionen for at kopiere den færdige kildefil (WAL-filsegment i $PGDATA/pg_xlog ) til destination (ARKIVPLADS ). "streng" kan være alt som shell script (batch i Windows) selv, OS komprimeringsværktøjer og et særligt værktøj pg_compresslog. I Windows vil cmd.exe udføre kommandoen, der er sendt i archive_command "streng".

Da vi ansøger på Windows-platformen, er forhåndsanmodninger:

  1. Arkivbiblioteket skal have fuld postgres-brugeradgang. ("C:Program FilesPostgreSQL9.2archives" i mit tilfælde)
  2. Window version GZIP-værktøj. Selvom der er mange gode komprimeringsværktøjer til Windows-varianter, valgte jeg gzip, fordi det understøttes både på Linux og Windows.
  3. Gzip.exe skal have adgang til Postgres User og også i PATH. ("C:Program FilesGnuWin32bin" i mit tilfælde).

Forudsat at alle forudsætninger er på plads, og næste trin bør være at redigere filen $PGDATA/postgresql.conf og ændre de arkiveringsrelaterede parametre og genstarte klyngen:

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)

I henhold til PG-dokumentationen er der foretaget ændringer og genstartet klyngen, i forventning om at mine arkiver herfra vil blive komprimeret en. Lad os se på loggene:

2013-07-26 16:07:22 IST LOG:arkivkommando mislykkedes med udgangskode 1
2013-07-26 16:07:22 IST DETALJER:Den mislykkede arkivkommando var:"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog
  1. SQL Server bcp Utility og den numeriske datatype

  2. Automatiser IRI Data Integration Jobs med Oracle Job Scheduler

  3. Hvorfor kommer resultater fra en SQL-forespørgsel ikke tilbage i den rækkefølge, jeg forventer?

  4. Hvad er forskellen mellem bindevariabler og substitutionsvariabler (som jeg indtaster ved hjælp af &&)?