Бесплатных не бывает. Есть платный (относительно дешевый) enterprise, которым пользуемся
Гарантия восстановления данных - 100% (да-да, это бывает), скорость восстановления == скорость записи на диск по сети, т.е. зависит от железки куда рестор делаешьЕсли по сути - бэкапим диск на блочном уровне (для того же postgresql этого достаточно), для всяких mysql/mssql есть плагины (работает как mysqlproxy, отслеживая изменение состояния снапшота во время бэкапа)
Ну и главное не чем бэкапить, а какая policy. Если policy правильная, то все будет хорошо
У нас полиси такая:
- Бэкап на отдельный сервер, инкрементально, поблочно каждую ФС. Для критичных данных типа СУБД - раз в час
- Успешный бэкап сжимается и реплицируется на другой континент раз в 4 часа
- Реплика бэкапа раз в сутки сливается в облако S3, а оттуда в долговременное хранилище
- Раз в сутки бэкап разворачивается на stage-сервер и по нему гоняются автоматические тесты, которые в том числе позволяют установить точность восстановления на 95%
- DWH собирает для основной базы KPI отчеты и stage-сервер сравнивает развернутый бэкап создавая аналогичные отчеты час-в-час, кроме последнего (текущего) часа - его еще нет в бэкапе
Все делается автоматически, на CICD сервере
При миграции данных (программисты выпускают новую версию), перед деплоем делается обязательный бэкап
НИКТО - это важно, даже СамыйГлавныйАдмин не имеет ручного доступа к данным. Т.е. rm -rf /var/lib/postgresql просто не выполнится в консоли. Такого рода команды работают только через коммит CICD джобы и аппрув 2+ тиммейтами (code/change review)
Ну и помимо всякого - все действия логируются, по каждому инциденту заводится тикет в джире и не закрывается, пока root cause не будет устранена, покрыта тестами и мониторингом и автоматизирована
В общем - главное архитектура :-)