Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

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

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

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

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

где: 

  • $USER - логин от учетной записи mysql
  • $PASSWORD  - пароль от учетной записи mysql
  • compress - параметр, отвечающий за сжатие бэкапа
  • compress-threads - количество параллельных потоков
  • target-dir - путь, куда будет сохранен бэкап

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

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

где:

  • target-dir - путь до инкрементального бэкапа
  • incremental-basedir - путь до полного бэкапа

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

Перед тем как восстановить бэкап из резервной копии, его нужно разархивировать утилитой 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

где:

  • decompress - файл для разархивации
  • remove-original - удаление архивированных файлов

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

xtrabackup --prepare --apply-log-only --target-dir=$BACKUP_DIR/FULL
  • apply-log-only - обязательная опция, если восстанавливаем также из инкрементального бекапа. Без этой опции инкременты станут бесполезны.

Далее указываем 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
  • Нет меток