Pokud jde o ukládání archivů, můžete si vybrat funkci protokolování komprimovaného archivu v PostgreSQL.
„archive_command(string)“ v $PGDATA/postgresql.conf , je jako příkaz shellu, který provede to, co je předáno v sekci řetězce, aby se zkopíroval dokončený zdrojový soubor (segment souboru WAL v $PGDATA/pg_xlog ) do cíle (MÍSTO ARCHIVU ). „string“ může být cokoli jako samotný skript shellu (dávka ve Windows), nástroje pro kompresi OS a speciální nástroj pg_compresslog. Ve Windows provede cmd.exe příkaz předaný v archive_command „string“.
Protože se přihlašujeme na platformě Windows, předběžné požadavky jsou:
- Archivní adresář by měl mít plný uživatelský přístup postgres. (v mém případě „C:Program FilesPostgreSQL9.2archives“)
- Verze okna nástroje GZIP. Přestože existuje mnoho dobrých kompresních nástrojů pro varianty Windows, zvolil jsem gzip, protože je podporován v Linuxu i ve Windows.
- Gzip.exe by měl mít přístup k Postgres User a také v PATH. (V mém případě „C:Program FilesGnuWin32bin“).
Za předpokladu, že jsou splněny všechny předpoklady a dalším krokem by měla být úprava souboru $PGDATA/postgresql.conf a změna parametrů souvisejících s archivací a restartování clusteru:
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)
Podle dokumentace PG byly provedeny změny a restartován cluster s očekáváním, že odtud budou mé archivy zkomprimovány. Podívejme se na protokoly:
2013-07-26 16:07:22 IST LOG:příkaz archive selhal s kódem ukončení 1
2013-07-26 16:07:22 IST DETAIL:Selhal příkaz pro archivaci:"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog