[MySQL] Дамп базы используя Percona xtrabackup - rsajob/docs GitHub Wiki
Percona xtrabackup может делать дамты не блокируя таблицы на долгое время
Установка
Установка через yum
описана в официальной документации
# Добавляем репозиторий:
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
# Устанавливаем:
yum install percona-xtrabackup.x86_64
Создание дампов
Есть статья на русском как что делать
Принцип работы:
- Создание дампа при помощи
innobackupex
- Подготовка полного бэкапа (применение бинарных логов)
- Восстановление полного бэкапа
Всё это доступно описано в официальной документации
Пример создания и восстановление дампа
# Готовим папку
rm -rf /tmp/waptut_move/
mkdir /tmp/waptut_move/
cd /tmp/waptut_move/
# Делаем дамп
innobackupex --user=root --password=dbpass --databases "waptut" /tmp/waptut_move
Можно использовать флаг --no-timestamp для того чтобы бэкап складывался сразу в текущую папку без указания даты
# Восстановлнеи:
# В указанной папке создасться подпака вида 2013-04-26_14-31-07
# Накатываем бинарные логи которые накопились за время создания дампа
innobackupex --apply-log /tmp/waptut_move/2013-04-26_14-31-07
# Есть 2 варианта восстановить: в ручную и при помощи innobackupex --copy-back /path/to/BACKUP-DIR
# останавливаем mysql
service mysqld stop
# Вариант 1: В ручную
# Бэкапим текущую базу
rm -rf /var/lib/mysql.old
mkdir /var/lib/mysql.old
mkdir /var/lib/mysql.old/waptut
mv /var/lib/mysql/waptut /var/lib/mysql.old/waptut
# Обратно: mv /var/lib/mysql.old/waptut /var/lib/mysql/waptut
# Восстанавливаем бэкап
rm -rf /var/lib/mysql/waptut
mv /tmp/waptut_move/2013-04-26_14-31-07/waptut /var/lib/mysql
# Вариант 2: при помощи innobackupex --copy-back /path/to/BACKUP-DIR (я его не пробовал)
innobackupex --copy-back /tmp/waptut_move/2013-04-26_14-31-07/
# Обязательно восстанавливаем права
chown -R mysql.mysql /var/lib/mysql
# Запускаем mysql
service mysqld start