LinuxАдминистрирование

Инкрементальный backup MySQL

Backupninja — расширяемая система резервного копирования, удобная консольная обёртка для нескольких утилит резервного копирования.

Большинство консольных утилит используемых для создания резервных копий не имеют собственных конфигурационных файлов. Backupninja обеспечивает возможность централизованной настройки и запуска резервного копирования с помощью нескольких (опционально устанавливаемых), наиболее популярных консольных утилит (duplicity, rsync, rdiff-backup и mariadb-clients).

Настройки для запуска всех утилит Backupninja сохраняет в едином конфигурационном файле (/etc/backupninja.conf), для каждого задания резервного копирования конфигурации сохраняются отдельно (по умолчанию используется каталог /etc/backup.d), в удобных к правке и интуитивно понятных ini-файлах(по сути обычные текстовые файлы), возможен просмотр базовой системной и аппаратной информации (hwinfo).

Задания Backupninja могут выполняться параллельно и поочерёдно, как обычные так и зашифрованные, поддерживается удалённое управление резервным копированием, безопасное резервное копирование баз данных (MySQL, PostgreSQL, OpenLDAP и др), пользовательские скрипты, сжатие (используется gzip), отправка сообщений "об ошибках" по электронной почте и интеграция с Linux Vserver(система виртуализации).

Подробная документация на странице разработчика.

Установка Backupninja:

$ apt install backupninja

В /etc/backup.d/ создаёте конфиги вида 20-db.mysql , 30-inc.dup
Числа в начале файла описывают очерёдность выполнения в случае одновременного запуска (сначала сдампить базу, а затем создать инкрементальный архив).
Расширение файла указывает на тип задачи (.mysql - бэкап mysql, .dup - используем duplicity).

Шаблоны конфигов можно найти в папке /usr/share/doc/backupninja/examples/.

Конфиг бекапа MySQL

/etc/backup.d/20-db.mysql:

databases   = all
backupdir   = /path/to/backup/mysql
hotcopy     = no
sqldump     = yes
compress    = yes
dbusername  = MYSQL_USERNAME
dbpassword  = MYSQL_PASSWORD

Проверить работы конфига можно следующей командой:

$ backupninja -t -n

Инкрментальный архив


## Параметры, передаваемые напрямую duplicity при запуске бэкапа
## --no-encryption позволяет отключить шифрование архивов с бэкапом и получить обычный .tar.gz
options = --no-encryption

testconnect = no
tmpdir = /tmp

[source]
include = /path/to/backup/mysql/sqldump

[gpg]
## Ключ для симметричного шифрования. Duplicity шифрует бэкапы с помощью gpg. Должен быть указан, даже если стоит --no-encryption, хоть и не будет использоваться
password = 123

[dest]
## perform incremental backups
incremental = yes

## days of incremental backups before doing full backup again
increments = 7

## how many days of data to keep
keep = 14

## for how many full backups do we keep their later increments
keepincroffulls = all

desturl = file:///path/to/backup/mysql

С бэкапами лучше работать самой утилитой duplicity.

Узнать статус:

$ duplicity collection-status file:///path/to/backup/mysql

Восстановить:

$ duplicity restore file:///path/to/backup/mysql /path/to/restore/

Более подробно с настройками можно ознакомиться на странице официальной документации.

Loading...