Задать вопрос
@getnowtoday

Как правильно делать бекапы базы Postgresql на продашн сервере?

Есть pg_dump. Как правильно делать бэкапы базы Postgresql на сервере? По крону, примерно раз в день? И потом их закачивать на aws и dropbox? Шифровать? Сколько копий хранить, то есть, за какое время -- за последнюю неделю, месяц или ...? Может, на мыло тоже отправлять на всякий случай? Что-то ещё?

В общем, что и как?

Сторониие сервисы не хочу использовать.
  • Вопрос задан
  • 1070 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Melkij К ответам на вопрос (2)
Melkij
@Melkij
DBA Team для вашего PostgreSQL?
Зависит от:
0) какой промежуток времени вам допустимо потерять при восстановлении
1) сколько места вы можете выделить для хранения бекапов
2) какой запас времени вы хотите сохранять для возможности восстановить данные когда-то из более далёкого прошлого

Может, на мыло тоже отправлять на всякий случай?

Как через почту пропихнуть даже мелкие бекапы в десяток гигабайт?
Или вы про совсем крошечные базы спрашиваете?

Шифровать или нет - зависит от требований к безопасности и оценке риска в случае disaster recovery не восстановить ключ шифрования.

Для хорошего point in time recovery - pg_basebackup + pg_receivexlog (archive_command только если уверены, что можете её сделать нормально). Или что-то, работающее поверх них.
Отдельный случай pitr с хранением в амазоне - см. вполне внятный wal-e
Если pitr не обязателен, то pg_dump делать. Да, лучше архивировать, сжимаются дампы весьма неплохо.

Например, политика бекапа из практики: ежедневный pg_dumpall, хранятся за 1 число каждого месяца на протяжении года плюс 8 дней предыдущих ежедневных.

Что-то ещё - регулярно пробовать восстановить и запустить базу из бекапа.
Ответ написан