Вы здесь

Barman

PostgreSQL поддерживает возможности физического и логического бэкапа, добавляя к ним еще один уровень WAL (см. врезку), который можно назвать непрерывным копированием. Но управлять при помощи штатных инструментов несколькими серверами не очень удобно даже админу со стажем, а в случае сбоя счет идет на секунды.

Barman (backup and recovery manager) — внутренняя разработка компании 2ndQuadrant, предоставляющей услуги на базе PostgreSQL. Предназначен для физического бэкапа PostgreSQL (логический не поддерживает), архивирования WAL и быстрого восстановления после сбоев. Поддерживаются удаленный бэкап и восстановление нескольких серверов, функции point-in-time-recovery (PITR), управление WAL. Для копирования и подачи команд на удаленный узел используется SSH, синхронизация и бэкап при помощи rsync позволяет сократить трафик. Также Barman интегрируется со стандартными утилитами bzip2, gzip, tar и подобными. В принципе, можно использовать любую программу сжатия и архивирования, интеграция не займет много времени. Реализованы различные сервисные и диагностические функции, позволяющие контролировать состояние сервисов и регулировать полосу пропускания. Поддерживаются Pre/Post-скрипты.

Конфигурационный файл Barman

Конфигурационный файл Barman


Barman написан на Python, управление политиками резервного копирования производится при помощи понятного INI-файла barman.conf, который может находиться в /etc или домашнем каталоге пользователя. В поставке идет готовый шаблон с подробными комментариями внутри. Работает только на *nix-системах. Для установки в RHEL, CentOS и Scientific Linux следует подключить EPEL — репозиторий, в котором содержатся дополнительные пакеты. В распоряжении пользователей Debian/Ubuntu официальный репозиторий:

$ sudo apt-get install barman

В репозитории не всегда последняя версия, для ее установки придется обратиться к исходным текстам. Зависимостей немного, и разобраться в процессе несложно.

 

Получение списка серверов:

barman list-server

Просмотр настроек для сервера:

barman show-server {название сервера}

Проверка настроек для сервера:

barman check {название сервера}

Посмотреть список бэкапов для указанной базы:

barman list-backup {название сервера}

Более подробная информация о выбранной резервной копии:

barman show-backup {название сервера} {номер копии}

Для создания бэкапа:

barman backup {название сервера}

Для удаления бэкапа:

barman delete {название сервера} {номер копии}

Для восстановления базы из бэкапа:

barman recover --remote-ssh-command "ssh postgres@{название сервера}" {название сервера} {номер копии} /var/lib/pgsql/9.3/data

Для восстановления базы из бэкапа с состоянием на 7 часов утра 1 сентября 2015:

barman recover --target-time "2015-09-01 07:00:00" --remote-ssh-command "ssh postgres@{название сервера}" {название сервера} latest /var/lib/pgsql/9.3/data

Также barman может восстановить базу используя PITR: для этого используются опции target-time (указывается время) или target-xid (id транзакции).

Настройка barman 
добавляем в /etc/barman.conf

;; ; 'main' PostgreSQL Server configuration
[{host_db}]
;; ; Human readable description
description =  "{host_db}"
;;
;; ; SSH options
ssh_command = ssh {user_backup}@{host_db}
;;
;; ; PostgreSQL connection string
conninfo = host={host_db} user={backup} password={password}

Настройка postgres для barman 
Настраиваем беспарольный доступ на машине с barman:

sudo su barman
ssh-copy-id postgres@{сервер БД}

и на машине с БД:

sudo su postgres
ssh-copy-id barman@{сервер БД}

Меняем в postgresql.conf

wal_level = hot_standby
archive_mode = on
archive_command = 'rsync -a %p barman@{hostname_barman}:/u01/barman/{hostname_db}/incoming/%f'

После изменения настроек нужно перегрузить PostgreSQL. 

Настройка cron для barman 
настраиваем полный бэкап и удаление самого старого полного бэкапа (по умолчанию 3-х месячной давности)

0 3 * * 7 barman backup {название сервера}
0 23 8 * * barman delete {название сервера} oldest

 

Post new comment

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
10 + 0 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.