Развертывание бекапов БД созданных с помощью Percona XtraBackup
Jul 24, 2015 22:25 · 241 words · 2 minute read
При резервном копировании важно не только уметь создавать резервные копии (об этом я писал ранее, и даже выложил готовый скрипт для создания резервных копий), но и знать как быстро восстанавливаться из бекапов.
Давайте разберемся с этим вопросом!
Итак, алгоритм развертывания полного бекапа баз данных:
- останавливаем 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