Pull to refresh
6
0
Псевдоним: Дон Шампиньон @Lord_Alfred

Делаю разное

Send message
Доброго времени!

Про велосипеды я имел что как минимум заливку в какое-то хранилище (S3) – придётся писать самостоятельно. Но сюда же можно добавить и удаление старых резервных копий, особенно очистку wal'ов, которые создаются с помощью archive_command.

Проще говоря – лучше взять что-то готовое и научиться его использовать, тем более что оно уже протестировано в условиях Яндекса :)
Большое спасибо за пояснения! Такие дискуссии очень к месту, потому что другие уже исходя из опыта нескольких людей смогут выбрать для себя что-то подходящее.
Да, прощу прощения – бегло прочитал и подумал что вы о pg_basebackup.

Инструмент от postgres pro я не использовал, но судя по документации – его чуть сложнее сконфигурировать и у него есть только локальный бэкап (нельзя в S3 сразу выгружать).

Если вы использовали pg_probackup, то можете поделиться тем, что у него сделано хорошо и какие там есть киллер-фичи?
Не использовал хранилище от гугла, но если судить по разделу настроек в репе, то нужно добавить в конфиг параметр WALG_GS_PREFIX и настроить авторизацию с помощью GCE/GKE.
Вся статья об этом.
Вкратце:
  • поддержка выгрузки бэкапов в 5 различных хранилищ;
  • создание «дельта» бэкпов, которые включат только те журналы, где были изменения (чтоб не делать копию всего кластера целиком каждый раз);
  • сжатие бэкапов тремя методами (но лучше использовать Brotli);
  • очистка хранилища несколькими методами, в том числе лимитируя количество оставляемых копий или оставляя бэкапы за определенный срок.
Спасибо за замечание!
А какое разумное время ожидания лучше выставить для backup-push? Всё таки объемы у всех разные
Обычно через него делают дамп всей базы целиком, соответственно размер бэкапа на больших базах будет внушительный, а из этого следует что бэкапить хотя бы каждый час этим способом – не рационально. Поэтому обычно все делают бэкапы раз в сутки, ночью. Но если что-то произойдет с базой/сервером в течении дня, то все данные за этот промежуток будут утеряны.

В случае с описаным в статье способом бэкапа – все изменения, которые попали в WAL (Write-ahead Log) и выгрузились через archive_command – улетят в облако. И когда будете восстанавливаться – они подтянутся через restore_command, поэтому шанс потерять что-то крайне мал.

Плюс ещё раньше всех пугали блокировками на уровне базы, когда делается pg_dump. Но как сейчас там дела – я точно не знаю.

Information

Rating
Does not participate
Registered
Activity