[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