Технические заметки одного Евтуховича

Рассказ о серых трудовых буднях инженера программных систем

Barman и WAL-E

| Комментарии

В postgresql есть замечательная возможность делать непрерывные бэкапы, то есть бэкапы, по которым можно восстановиться на любой момент времени.

Если вы делаете обычные бэкапы и запускаете в час ночи pg_dump, а в час дня ваш сервер БД умер, то вы потеряете данные за 12 часов и доверие ваших пользователей. Для многих web-сервисов такой сценарий неприемлем, и, чтобы минимизировать потери данных, стоит использовать непрерывный бэкап.

На пальцах идея непрерывного бэкапа очень проста: перед тем как записать любые изменения (закоммитить любую транзакцию), postgres пишет запись об изменениях на диск в wal-лог (write ahead log, он поэтому так и называется — лог, в который пишут заранее). Если взять базовый бэкап постгреса и все wal-логи, которые были сделаны после этого, то можно восстановить состояние БД на любой момент времени.

Но ручное управление такими бэкапами — дело достаточно муторное, поэтому появились утилиты, которые помогают автоматизировать процесс управления непрерывными бэкапами.

Первая из них — это WAL-E от компании heroku. Ее не так просто найти в гугле из-за мультфильма с очень похожим названием. Данная утилита позволяет легко создавать непрерывные бэкапы на Amazon S3. А так же легко их оттуда потом доставать и просматривать список бэкапов.

И совсем недавно появился barman от компании 2ndQuadrant, которая активно участвует в разработке postgresql. Он делает практически то же самое, только не для S3, а для выделенного сервера для бэкапов.

WAL-E был испытан нами в бою и показал себя очень хорошо, а barman пока еще не использовался, но он и появился совсем недавно, так что он ждет своего часа.

Комментарии