Попытка сделать почасовое инкрементное резервное копирование одного сервера Postgres (Win7 64).
У меня есть следующие настройки в postgresql.conf
:
max_wal_senders = 2
wal_level = archive
archive_mode = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'
(начать сначала)
Я сделал базовое резервное копирование с pg_basebackup -U postgres -D ..\foo -F t -x
Это сделало большой base.tar
файл в foo
папке и добавило около 16384 КБ файлов, которые, я полагаю, являются WAL.
Чего я не понимаю, так это почему WAL foo
не меняются . WALS в data/pg_xlog
изменении. Разве pg не должен копировать их? Как он решает это сделать?
Возможно, мне нужно установить archive_timeout=3600
?
Я видел несколько сайтов (списки рассылки pg, страница postgres bacula), на которых написано, что вам нужно вызывать pg_start_backup () и pg_stop_backup (), но я считаю, что они не обязательны. Это правда?
Дополнительные вопросы:
Как часто
data/pg_xlog
записываются WAL ? Что вызывает запись?Кажется, чтобы обновить WAL, если я делаю некоторые DML, то
\q
в psql. Или отредактируйте таблицу в pgAdmin, затем закройте окно. Я полагал, что это напишет на коммите.Лучшие практики? pg_basebackup раз в неделю? Архивировать WAL на той же машине, что и PG, или на удаленной машине?
источник
pg_basebackup
, это уже позаботится об этом. 3. postgres автоматически удалит файлы WAL,pg_log
когда они больше не нужны. Вы не должны ничего делать вручнуюpg_log
. В противном случае смотритеwal_keep_segments
параметрpg_xlog
полностью управляется автоматически postgres, тогда как папка архива полностью управляется администратором базы данных.Существует существующий инструмент, который вам очень поможет, WAL-E . Это обеспечивает
archive_command
иrestore_command
для PITR к S3.Там нет ни одной команды , чтобы сделать инкрементные или дифференциальные логические копии.
pg_dump
не может взять инкремент или дифференциал. Единственный способ сделать это - через архивирование журнала.Теоретически вы можете создать новую полную резервную копию, сделать двоичную разность между ней и последней резервной копией и загрузить ее. Это кажется мне хрупким и неэффективным способом делать вещи, и я действительно не рекомендовал бы это.
Кроме того, PgBarman поддерживает интеграцию с S3 через подключаемые скрипты и автоматизирует большую часть ротации и управления резервными копиями для вас. Опять же, это может быть не вариант на Windows.
источник