powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Объясните алгоритм резервного копирования WAL Archiving
15 сообщений из 15, страница 1 из 1
Объясните алгоритм резервного копирования WAL Archiving
    #39285487
abrasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, друзья.

Не могу ни как вникнуть в суть непрерывного резервного копирования
https://www.postgresql.org/docs/9.3/static/continuous-archiving.html


Код: plaintext
1.
2.
3.
wal_level = archive			
archive_mode = on		
archive_command = 'cp -i %p  /home/user/backup_wal/ %f </dev/null'		

Далее делаю копию:

Код: plaintext
1.
2.
psql -c "SELECT pg_start_backup('backup');"
nice -n 7 rsync -a /var/lib/postgresql/9.3/main postgres@myserver.net:/data/postgresql/9.3/
psql -c "SELECT pg_stop_backup();"

Все супер. Проходит 6 часов я обнаруживаю в каталоге /home/user/backup_wal ~400 файлов каждый по 16Мб!
Что это такое? Зачем они нужны?
Вообще можно обойтись без опции archive_command ?
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39285515
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasum, собственно, это wal и есть. Write ahead log, бинарный лог всех изменений.
Их сохранение позволяет выполнить восстановление во времени в любую точку во времени от pg_stop_backup до текущего момента. Point in time recovery, pitr.

И сошлюсь на pgday: http://pgday.ru/files/papers/53/PostgreSQL Backups the Modern Way.pdf (записей вроде бы ещё нет)
archive_command - неправильный путь. Правильный - использовать pg_basebackup и pg_receivexlog

Если вам не нужно pitr - то достаточно только pg_basebackup.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39285559
abrasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,

Я заинтересован в хранении копии БД на удаленном сервере.
Меня очень здорово устраивает rsync - если проводить rsync ежесуточно то вся операция занимает всего-то 3-5 минут.
А если делать каждый раз отдельную копию то это 30 минут. БД весит ~35Gb

Я правильно понял что в моем случае эти бинарные логи не нужны. И их можно тупо не копировать.
Т.е. я могу закоментировать опцию archive_command ?
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39285584
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вам не нужен pitr - то да, хранить все wal необязательно.

rsync... Не могу ничего определённого сказать по поводу этого способа, может кто ещё скажет, но периодически проверяйте, можете ли вы восстановиться из бекапа.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39285694
PgSQLanonymous2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
abrasumНе могу ни как вникнуть в суть непрерывного резервного копирования

Так используйте pg_basebackup, и всех-то дел. ;)

abrasumЯ заинтересован в хранении копии БД на удаленном сервере.
Меня очень здорово устраивает rsync - если проводить rsync ежесуточно то вся операция занимает всего-то 3-5 минут.
А если делать каждый раз отдельную копию то это 30 минут. БД весит ~35Gb

А восстанавливаться-то Вы оттуда собираетесь, или делаете это "для галочки"?

abrasumЯ правильно понял что в моем случае эти бинарные логи не нужны. И их можно тупо не копировать.

Нет, неправильно. Если Вы их не сохраняете, в общем случае сейчас у Вас в "myserver.net:/data/postgresql/9.3/" мусор, а не backup(ы).

abrasumТ.е. я могу закоментировать опцию archive_command ?


If archive_command is an empty string (the default) while archive_mode is enabled,
WAL archiving is temporarily disabled, but the server continues to accumulate
WAL segment files in the expectation that a command will soon be provided.

Т.е. они просто перестанут удаляться, и pg_xlog начнёт неограниченно расти...

А зачем у Вас вообще включено архивирование, если Вас "устраивает rsync"?
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39285696
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasum,

одного rsync datadir недостаточно, нужно иметь все wal файлы, созданные с момента pg_start_backup('backup') до конца rsync'а.
используйте pg_basebackup с опцией --xlog-method=stream при которой нужные файлы будут во время снятия бэкапа забираться по протоколу репликации. по скорости будет так же как и rsync.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39286383
abrasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, за ответы, коллеги.

Подскажите мне про параметр wal_level
Его нужно установить либо archive или hot_standby что бы можно было использовать pg_basebackup
Какое значение использовать? Чем они отличаются?
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39286447
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasum,

archive — писать в WAL информацию, достаточную для архивации логов и PITR
hot_standby — как archive + все необходимое для HotStandby (восстановление и RO доступ к данным одновременно).

Я везде ставлю hot_standby, в 9.6 их объединили под именем replica.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39289532
abrasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, хочу все таки вернуться к способу копирования через pg_start_backup/rsync/pg_stop_backup.
Что мне делать с файлами wal которые образуются в ходе работы rsync? Их нужно тупо на резервном сервере подложить в wal_archive?
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39289782
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasum,

Вам стоит разобраться в том, как устроен транзакционный движок в реляционных СУБД и том, как база использует журнал для восстановления. Тогда многое станет понятно и вопросы отпадут.

По существу — все WAL-ы произведённые во время копирования PGDATA необходимы для запуска базы из такого бэкапа.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39289807
abrasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я наивно думал так: во время резервного копирования в БД все равно идут запросы на модификацию. Все эти запросы идут не на прямую в БД, а в эти самые журналы. После завершения копирования сервер читает эти журналы и применяет все изменения.
Так как я копирую БД один раз в сутки то она в любом случае будет не синхронизирована с рабочим сервером, стало быть этими журналами можно элементарно пренебречь. И причем тут рабочая/не рабочая копия?
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39289849
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasum,

если это не для академических целей - используйте pg_basebackup, где за вас уже на все грабли наступили и не изобретайте велосипед. rsync + archive_command использовали раньше, когда не было альтернатив.

после вызова pg_start_backup все изменения пишутся на диск как обычно. он только делает (или ждет пока закончится) неявный checkpoint и сохраняет некоторую информацию. поэтому и нужны wal'ы, т.к. во время копирования data files могут меняться.

After a checkpoint has been made and the log flushed, the checkpoint's position is saved in the file pg_control. Therefore, at the start of recovery, the server first reads pg_control and then the checkpoint record; then it performs the REDO operation by scanning forward from the log position indicated in the checkpoint record. Because the entire content of data pages is saved in the log on the first page modification after a checkpoint (assuming full_page_writes is not disabled), all pages changed since the checkpoint will be restored to a consistent state.

т.е. при восстановлении будет проигран журнал с последнего checkpoint и таким образом будет обеспечено консистентное состояние.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39290941
abrasum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вчера я испытал настоящий бедхёрт.
Нашел на просторах интернета такую команду для выполнения резервной копии PostgreSQL на удаленный сервер:

Код: sql
1.
pg_basebackup -x --format=tar -D - | ssh myserver.com -p 2212 "tar xf - -C /data/postgresql/9.3/main/"



БД весит 36Гб в итоге вся операция копирования длилась 6 часов!!!!
Да это ни в какие ворота!
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39290987
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasum,

Что конкретно в ворота не лезет?
Может у вас сеть не даёт нормальной скорости? (ssh шифрует поток данных — оно тоже “добавляет” к скорости.)
Или дисковая загружена другими задачами?

Работа с базой требует понимания во всей инфраструктуре.
...
Рейтинг: 0 / 0
Объясните алгоритм резервного копирования WAL Archiving
    #39291261
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abrasumВчера я испытал настоящий бедхёрт.
Нашел на просторах интернета такую команду для выполнения резервной копии PostgreSQL на удаленный сервер:

Код: sql
1.
pg_basebackup -x --format=tar -D - | ssh myserver.com -p 2212 "tar xf - -C /data/postgresql/9.3/main/"



БД весит 36Гб в итоге вся операция копирования длилась 6 часов!!!!
Да это ни в какие ворота!

36Gb за 6 часов - это только сетевые проблемы, на честном гигабите это должно занимать заметно меньше 10 минут.
Проверьте за сколько времени у вас на удаленный сервер просто тестовый файл копируется размером в 1Gb Например.

PS: base backup лучше пускать сразу на удаленном сервере... тогда не надо возится с tar/untar/ssh.

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Объясните алгоритм резервного копирования WAL Archiving
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]