Настройка резервного копирования осуществляется с помощью утилиты 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 |