Xtrabackup для бекапов Mysql

Xtrabackup — это необходимый инструмент для создания горячих бэкапов MySQL. Инструмент создает резервную копию сервера (т.е. всех баз данных сразу) без блокировок и остановок. Устанавливается из пакетов:

apt-get install percona-xtrabackup

Если нет в пакетах.

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

Сначала копируем файлы текущего сервера с помощью команды:

innobackupex --user=root --password=pwd /var/backups

В папке /var/backups будет создана подпапка с текущей датой (например, 20201010132431). После этого необходимо накатить лог изменений на файл данных:

innobackupex --user=root --password=pwd --apply-log /var/backups/20201010132431

Теперь эту папку можно сохранить на резервный сервер и ждать случая для использования.

Восстановление

Для восстановления достаточно скопировать бэкап в папку данных MySQL (параметр datadir в my.cnf):

/etc/init.d/mysql stop
mv /var/lib/mysql /var/lib/mysql.old
mv /var/backups/db/20201010132431 /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
/etc/init.d/mysql start

Периодическое копирование

Резервирование лучше добавить в cron и выполнять раз в час (день, если база занимает более 10Гб):

rm -rf /var/backups/db.prev
mv /var/backups/db /var/backups/db.prev

innobackupex --user=root --password=pwd /var/backups
d="/var/backups/db/`ls /var/backups/db`"
innobackupex --user=root --password=pwd --apply-log $d

материалы по теме

Подпишитесь на Хайлоад с помощью Google аккаунта
или закройте эту хрень