Про велосипеды я имел что как минимум заливку в какое-то хранилище (S3) – придётся писать самостоятельно. Но сюда же можно добавить и удаление старых резервных копий, особенно очистку wal'ов, которые создаются с помощью archive_command.
Проще говоря – лучше взять что-то готовое и научиться его использовать, тем более что оно уже протестировано в условиях Яндекса :)
Большое спасибо за пояснения! Такие дискуссии очень к месту, потому что другие уже исходя из опыта нескольких людей смогут выбрать для себя что-то подходящее.
Да, прощу прощения – бегло прочитал и подумал что вы о pg_basebackup.
Инструмент от postgres pro я не использовал, но судя по документации – его чуть сложнее сконфигурировать и у него есть только локальный бэкап (нельзя в S3 сразу выгружать).
Если вы использовали pg_probackup, то можете поделиться тем, что у него сделано хорошо и какие там есть киллер-фичи?
Не использовал хранилище от гугла, но если судить по разделу настроек в репе, то нужно добавить в конфиг параметр WALG_GS_PREFIX и настроить авторизацию с помощью GCE/GKE.
Обычно через него делают дамп всей базы целиком, соответственно размер бэкапа на больших базах будет внушительный, а из этого следует что бэкапить хотя бы каждый час этим способом – не рационально. Поэтому обычно все делают бэкапы раз в сутки, ночью. Но если что-то произойдет с базой/сервером в течении дня, то все данные за этот промежуток будут утеряны.
В случае с описаным в статье способом бэкапа – все изменения, которые попали в WAL (Write-ahead Log) и выгрузились через archive_command – улетят в облако. И когда будете восстанавливаться – они подтянутся через restore_command, поэтому шанс потерять что-то крайне мал.
Плюс ещё раньше всех пугали блокировками на уровне базы, когда делается pg_dump. Но как сейчас там дела – я точно не знаю.
Про велосипеды я имел что как минимум заливку в какое-то хранилище (S3) – придётся писать самостоятельно. Но сюда же можно добавить и удаление старых резервных копий, особенно очистку wal'ов, которые создаются с помощью archive_command.
Проще говоря – лучше взять что-то готовое и научиться его использовать, тем более что оно уже протестировано в условиях Яндекса :)
Инструмент от postgres pro я не использовал, но судя по документации – его чуть сложнее сконфигурировать и у него есть только локальный бэкап (нельзя в S3 сразу выгружать).
Если вы использовали pg_probackup, то можете поделиться тем, что у него сделано хорошо и какие там есть киллер-фичи?
Вкратце:
А какое разумное время ожидания лучше выставить для backup-push? Всё таки объемы у всех разные
В случае с описаным в статье способом бэкапа – все изменения, которые попали в WAL (Write-ahead Log) и выгрузились через archive_command – улетят в облако. И когда будете восстанавливаться – они подтянутся через restore_command, поэтому шанс потерять что-то крайне мал.
Плюс ещё раньше всех пугали блокировками на уровне базы, когда делается pg_dump. Но как сейчас там дела – я точно не знаю.