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

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