Ответ
Barman (Backup and Recovery Manager) — это open-source инструмент для DevOps-инженеров, предназначенный для централизованного управления резервным копированием и восстановлением серверов PostgreSQL. Он реализует стратегию непрерывного архивирования WAL (Write-Ahead Log) и периодических физических бэкапов.
Основные принципы работы и преимущества:
- Физические бэкапы: Создает бинарные копии файлов данных PostgreSQL, что обеспечивает быстрое восстановление.
- PITR (Point-in-Time Recovery): Позволяет восстановить базу данных на любой момент времени в пределах retention period, комбинируя полный бэкап и архив WAL-логов.
- Минимальное воздействие на production: Бэкапы могут выполняться через реплику или с использованием низкоуровневого API
pg_basebackup/pg_backup_start/stop. - Централизованное управление: Один сервер Barman может управлять бэкапами для десятков PostgreSQL-серверов.
- Интеграция с облаком: Поддержка хранения бэкапов в S3, Azure Blob Storage и других объектных хранилищах.
Типичный workflow в DevOps:
# На сервере Barman: проверка состояния сервера 'pg-main'
barman check pg-main
# Инициирование полного бэкапа
barman backup pg-main
# Просмотр списка бэкапов
barman list-backup pg-main
# Восстановление на определенную точку во времени на новый сервер
barman recover --target-time "2023-10-26 15:30:00" pg-main latest /var/lib/pgsql/restored_data/
Barman интегрируется в пайплайны CI/CD для тестирования восстановления и является стандартом для построения отказоустойчивой стратегии бэкапов PostgreSQL.