Что такое Barman для PostgreSQL?

«Что такое Barman для PostgreSQL?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Barman (Backup and Recovery Manager) — это open-source инструмент для DevOps-инженеров, предназначенный для централизованного управления резервным копированием и восстановлением серверов PostgreSQL. Он реализует стратегию непрерывного архивирования WAL (Write-Ahead Log) и периодических физических бэкапов.

Основные принципы работы и преимущества:

  1. Физические бэкапы: Создает бинарные копии файлов данных PostgreSQL, что обеспечивает быстрое восстановление.
  2. PITR (Point-in-Time Recovery): Позволяет восстановить базу данных на любой момент времени в пределах retention period, комбинируя полный бэкап и архив WAL-логов.
  3. Минимальное воздействие на production: Бэкапы могут выполняться через реплику или с использованием низкоуровневого API pg_basebackup/pg_backup_start/stop.
  4. Централизованное управление: Один сервер Barman может управлять бэкапами для десятков PostgreSQL-серверов.
  5. Интеграция с облаком: Поддержка хранения бэкапов в 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.