Обзор самых популярных средств для создания резервных копий PostgreSQL.
В обзоре будут рассмотрены
Barman,
PgBackRest,
pg_probackup от компании
Постгрес Профессиональный и
WAL-E. WAL-G я не стал рассматривать, потому что Go и скудость документации. У обоих WAL не вот уж богато с доками, но у WAL-G всё совсем грустно.
Наличие пакетов ОС
Язык программирования
Сжатие данных
Параллелизм
Управление WAL
Бекап нескольких инстансов
Бекап с реплики
Инкрементальный, дифференциальный бекап
Ротация бекапов
Проверка бекапа
Tablespaces
Barman
Yes
Python >=3.4
Yes (rsync)
Yes (rsync)
Yes
Yes
Yes (pgesspresso)
Yes (rsync)
Yes
?
Yes (rsync)
PgBackRest
С
Yes
Yes
?
Yes (нужно искать инфу)
Yes
Yes
Yes
pg_probackup
Yes
Yes (with PTRACK is better)
Yes (manual)
wal-e
Не обнаружено
Python >=3.4
?
?
Не обнаружено
?
Легенда
Наличие пакетов ОС - данный пункт интересен только эксплуататорам, я думаю. wal-e ставится pip-ом.
Язык программирования - здесь неплохо было бы указать зависимости для систем на питоне, но...
Сжатие данных - для уменьшения трафика, когда канал слабый, а база серьёзная. На самом деле надо экспериментировать.
Параллелизм - возможен ли бекап в несколько потоков.
Управление WAL - barman умеет в быть хранилищем WAL-ов для тех инстансов, которые бекапятся; про другие инфы не найдено.
Бекап нескольких инстансов - чтобы не забыть. Умеют все.
Бекап с реплики - могут все, но сильно по-разному, и документация об этой возможности весьма различна у всех продуктов. Для barman-а необходимо расширение pgespresso.
Инкрементальный, дифференциальный бекап - pg_probackup с PTRACK может в бекап на уровне страниц, а не на уровне файлов, как остальные (в документации по wal-e данная возможность не обнаружена).
Ротация бекапов - могут все.
Проверка бекапа - pgbackrest на инстансах с включенными чексуммами проверяет на лету, pg_probackup - отдельной командой;
Tablespaces - все продукты умеют перемещать табличные пространства во время восстановления.