Задача: организовать полный бекап кластера со всеми БД без остановки СУБД. Потом етот бекап планируется развернуть в качестве тестового кластера. Одна из баз весит 26Гб. Если pg_dumpall довольно быстро пишет дамп, то разворачивание етого бекапа при помощи psql происходит примерно по 10Мб/мин. 26Гб таким образом просто состарюсь ждать.
# psql -V
psql (PostgreSQL) 9.0.4
Прочитал вот ету статью: http://korzh.net/2011-04-rezervnoe-kopirovanie-baz-dannyx-v-subd-postgresql-o...
Попробовал организовать оба способа, но никаких файлов на выходе не получил.
Что, собственно, происходило. Когда я дошёл до строчки «select pg_start_backup('/db/backup/base/20130116');», postgres сначала матернулся:
ERROR: WAL level not sufficient for making an online backup
HINT: wal_level must be set to "archive" or "hot_standby" at server start.
ОК, поставил ему «wal_level = archive» и «archive_mode = on». Команда pg_backup_start затем выполнилась:
pg_start_backup
-----------------
8B/20
(1 row)
Смутило, что она выполнилась быстро - за секунды и после етого в папке назначения ничего не появилось.
Далее ругнулась команда «select pg_stop_backup()»:
NOTICE: pg_stop_backup cleanup done, waiting for required WAL segments to be archived
WARNING: pg_stop_backup still waiting for all required WAL segments to be archived (60 seconds elapsed)
HINT: Check that your archive_command is executing properly. pg_stop_backup can be cancelled safely, but the database backup will not be usable without all the WAL segments.
archive_command = 'test ! -f /db/base/backup_in_progress || cp -i %p /db/backup/archive/%f < /dev/null'
На етот раз и «pg_start_backup» и «pg_stop_backup» выполнились без ошибок, но опять же, ничего я не нашёл.
Скажите, я вобще правильно понимаю, что можно создать полный бекап БД по указанной статье и затем развернуть его гораздо быстрее, чем при помощи psql?
Если да, то почему у меня на выходе ничего нет?