Развертывание бекапов БД созданных с помощью Percona XtraBackup

Jul 24, 2015 22:25 · 241 words · 2 minute read mysql backup percona

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

Давайте разберемся с этим вопросом!

Итак, алгоритм развертывания полного бекапа баз данных:

  • останавливаем MySQL-сервер:
/etc/init.d/mysql stop
  • переходим в /var/lib/mysql и удаляем все содержимое:
cd /var/lib/mysql
rm -rf *
  • распаковываем резервную копию:
tar -ixvf имя_архива.tar.gz -C /var/lib/mysql
  • находясь в каталоге /var/lib/mysql накатываем бинарные логи:
innobackupex --apply-log --ibbackup=xtrabackup ./
  • выставляем права на каталог /var/lib/mysql:
chown -R mysql:mysql /var/lib/mysql/
  • запускаем MySQL-сервер:
/etc/init.d/mysql start

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

  • останавливаем MySQL-сервер:
/etc/init.d/mysql stop
  • переходим в /var/lib/mysql и удаляем все содержимое:
cd /var/lib/mysql
rm -rf *
  • распаковываем резервную копию:
tar -ixvf имя_архива.tar.gz -C /var/lib/mysql
  • находясь в каталоге /var/lib/mysql накатываем бинарные логи:
innobackupex --apply-log --redo-only --ibbackup=xtrabackup ./
  • перекладываем инкрементальную резервную копию имя_архива.xbstream в /mnt/temp

Примечание. Считаем, что создан раздел необходимого размера и примонтирован в /mnt/temp. Если у нас несколько инкрементальных архивов, то они должны находиться в разных каталогах — /mnt/temp_1, /mnt/temp_2 и т. д.

  • находясь в каталоге /mnt/temp распаковываем резервную копию:
xbstream -x < имя_архива.xbstream
  • находясь в каталоге /var/lib/mysql выполняем:
innobackupex --apply-log --ibbackup=xtrabackup ./ --incremental-dir=/mnt/temp/

Примечание. Если у нас несколько инкрементальных бекапов, то их нужно готовить в хронологической последовательности (!). Для всех, кроме последнего инкрементального бекапа нужно добавлять ключ --redo-only

  • находясь в каталоге /var/lib/mysql выполняем:
innobackupex --apply-log --ibbackup=xtrabackup ./
  • выставляем права на каталог /var/lib/mysql:
chown -R mysql:mysql /var/lib/mysql/
  • запускаем MySQL-сервер:
/etc/init.d/mysql start
tweet Share