Попытка сделать почасовое инкрементное резервное копирование одного сервера 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, или на удаленной машине?