Postgres Cluster, PGPool и Backup

440hz

php.ru
Имеем PGPool, который следит за master\slave двумя серверами, которые синкаются по PITR технологии через WAL файлы. Все работает хорошо. Сервера синкаются, пул следит, когда надо переключает, но...

Хочется иметь помимо горячего бекапа (slave) просто ежедневные бекапы. Раньше стоял обычный pg_dump, но при включении PGPool в момент бекапа, ночью, стал отключаться мастер от пула и все уходило в непонятки. Пул на короткий промежуток терял мастера из видимости (видимо сеть была перегружена когда бекап сливался в хранилище), делал попытку переключения на slave и тут все валилось, т.к. мастер опять поднимался, слейв был в непонятках, пул думал, что у него 2 мастера, в общем отказались от pg_dump и тут уперллись...

Что бы делать hot backup нужно как раз использовать WAL файлы, но они уже и так используются для синка master/slave причем slave подтирает за собой ненужные, отработанные WAL файлы. А для запуска хотбекапа как раз надо что б на момент архивирования все WAL были. В общем в данном случае как раз бекап на уровне WAL и не катит...

Никто не сталкивался с таким и как решали?
 

fixxxer

К.О.
Партнер клуба
С pgpool не работал, но вообще я тупо поднимаю специальный слейв, который ничего не делает, с которого регулярно снимаю дамп :)
 

440hz

php.ru
http://www.enterprisedb.com/docs/en/8.3/server/continuous-archiving.html
Там есть как делается стартовый бакап в том числе... а потом уже накопительные wal-ами
это все читали. пасиб. в случае мастер-слейв репликации не катит.

+ у нас WAL файлы набегают 100 шт в час. тоже не вариант.
 

440hz

php.ru
С pgpool не работал, но вообще я тупо поднимаю специальный слейв, который ничего не делает, с которого регулярно снимаю дамп :)
примерно так и хотим слелать.

единственно, что, когда делаешь pg_dump, то слейв перестает синкаться.с учетом того, что у нас бекап идет 5-6 часов, отставание очень значительное. потом этот слейв догоняется с мастера как бешенный.
=)

===

хотим. отдельный слейв, который поднимается раз в неделю. синкается и потухает.

можно его после синка делать мастером и уже сливать SQL бекап. в общем есть поле для полета мысли.
 

Alex_VP

Новичок
Доброго дня, решил не открывать новую тему, так как почти в тему будет сюда.
А дело вот в чем.
Делаю всё как по инструкции:
1. в /var/lib/pgsql создал backups и в ней archive и base. На archive и base выставил владельцем пользователя postgres.
2. написал скрипт для cron, тоже слово в слово взятый из руководство (пути все проверял на правильность). Ну собственна скрипт работает, дело не в нем.
3. Чтобы велось журналирование транзакций, иду в postgresql.conf и пишу:
a) wal_level = archive
b) archive_mode = on
c) archive_command = 'test ! -f /var/lib/pgsql/backup_in_progress || cp -i %p /var/lib/pgsql/backups/archive/%f < /dev/null'
Postgree SQL 8.3
Установка на Fedora (сборка от 1с, так сказать всё в комплекте)
Симптомы: иногда постгри не хочет рестартовать (точнее - не останавливается) но я ещё не определил в каких случаях это бывает, потому как видел, как иногда он это делал ))) Далее, когда вношу вышеозначенные строчки в конфиг - тоже опытным путем выяснил - если только b) и с) - всё нормально, но если добавляю a) - постгри не стартует после перезагрузки. Что это может быть?
Ну и соответственно, в pg_xlog файлы кладутся, но в backups/archive, указанном в archive_command - пусто...
И вот ещё...
Чем отличается приведенная команда от другого её варианта:
archive_command = 'test ! -f /var/lib/pgsql/backup_in_progress || (test ! -f /var/lib/pgsql/backups/archive/%f && cp %p /var/lib/pgsql/backups/archive/%f)'
насколько я понимаю, они идентичны по своему предназначению, но где-то писалось, что -i может привести к ошибкам
 
Сверху