Настройка резервного копирования осуществляется с помощью утилиты Percona XtraBackup. Инструкция по установке утилиты доступна на официальном сайте Percona, там же подробная инструкция по использованию программы xtrabackup.

Создание резервной копии

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

xtrabackup --backup --user=$USER --password=$PASSWORD --history --compress --slave-info --compress-threads=4 --target-dir=$BACKUP_DIR/FULL

где: 

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

xtrabackup --user=$USER --password=$PASSWORD --backup  --history --compress --slave-info --target-dir=$BACKUP_DIR/inc$NUMBER --incremental-basedir=$BACKUP_DIR/FULL

где:

Восстановление из резервной копии

Перед тем как восстановить бэкап из резервной копии, его нужно разархивировать утилитой qpress.

Утилита доступна в репозитории percona и устанавливается командой:

apt install qpress

Далее выполняем разархивирование полного бекапа и инкрементального бекапа:

xtrabackup --decompress --remove-original --parallel=4 --target-dir=$BACKUP_DIR/FULL
xtrabackup --decompress --remove-original --parallel=4 --target-dir=$BACKUP_DIR/inc$NUMBER

где:

Далее нужно выполнить подготовку резервной копии для восстановления:

xtrabackup --prepare --apply-log-only --target-dir=$BACKUP_DIR/FULL

Далее указываем 1 инкремент

xtrabackup --prepare --apply-log-only --target-dir=$BACKUP_DIR/FULL --incremental-dir=$BACKUP_DIR/inc1

И на последнем инкрементальном бекапе опцию apply-log-only указывать не нужно:

xtrabackup --prepare --apply-log-only --target-dir=$BACKUP_DIR/FULL --incremental-dir=$BACKUP_DIR/inc2


Опцию  apply-log-only следует использовать при объединении всех инкрементальных бэкапов с полным, кроме последнего.


Бэкап готов к восстановлению, осталось выполнить перемещение файлов:

~/mysql# service mysql stop
~/mysql# mv /var/lib/mysql /var/lib/mysql.old
~/mysql# cp -r /$BACKUP_DIR/FULL /var/lib/mysql
~/mysql# chown -R mysql:mysql /var/lib/mysql
~/mysql# service mysql start