Ако архивното съхранение е проблем, тогава можете да изберете функция за регистриране на компресиран архив в PostgreSQL.
“archive_command(string)” в $PGDATA/postgresql.conf , е като команда на обвивката за изпълнение на това, което е предадено в секцията низ, за да копирате завършения изходен файл (файлов сегмент на WAL в $PGDATA/pg_xlog ) до местоназначение (МЕСТОПОЛОЖЕНИЕ НА АРХИВА ). “string” може да бъде нещо като shell скрипт (партида в Windows), помощни програми за компресиране на ОС и специален инструмент pg_compresslog. В Windows cmd.exe ще изпълни командата, подадена в archive_command „string“.
Тъй като кандидатстваме на платформата Windows, предварителните заявки са:
- Архивната директория трябва да има пълен потребителски достъп на postgres. („C:Program FilesPostgreSQL9.2archives“ в моя случай)
- Помощна програма GZIP за версия на прозореца. Въпреки че има много добри помощни програми за компресиране на варианти на Windows, избрах gzip, защото се поддържа както в Linux, така и в Windows.
- Gzip.exe трябва да има достъп до Postgres User, а също и до PATH. („C:Program FilesGnuWin32bin“ в моя случай).
Ако приемем, че всички предварителни условия са налице и следващата стъпка трябва да бъде редактиране на файла $PGDATA/postgresql.conf и промяна на параметрите, свързани с архивирането, и рестартиране на клъстера:
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)
Съгласно документацията на PG бяха направени промени и рестартирахме клъстера, като се очаква оттук нататък моите архиви да бъдат компресирани. Нека разгледаме регистрационните файлове:
2013-07-26 16:07:22 IST LOG:командата за архивиране е неуспешна с изходен код 1
2013-07-26 16:07:22 IST ПОДРОБНОСТИ:Неуспешната команда за архивиране беше:"""C :Program FilesGnuWin32bingzip.exe" -1 <"pg_xlog