Быстрый перенос базы mysql на другой сервер с помощью percona xtrabackup
Содержание

По мотивам официального мануала

Скорость переноса данных, по сравнению с обычными консольными dump / restore просто колоссальная, т.к. переносятся целиком файлы таблиц.

Особенность в том, что на целевом сервере не должно быть рабочей mysql с нужными данными

На серверах должен быть установлен Percona XtraBackup

Source server

Делаем частичный бэкап (partial backup), указывая опцию -database, где через пробел перечисляем базы для бэкапа. Важным моментов является то, что необходимо забрать и базу mysql для сохранения учётных записей и разрешений

innobackupex --user=<user> --password=<password> --databases='<your_database> mysql' <your_backup_dir>

Затем обязательно забираем логи innodb, иначе получим сломанную базу

innobackupex --apply-log --export <your_backup_dir>

Destination server

Копируем с удалённого сервера папку с бэкапом

Очищаем mysql`ную datadir

rm -rf /var/lib/mysql/*

Пересоздаём системную бд

mysql_install_db --user=mysql

Затем копируем содержимое папки бэкапа в наш datadir, перезаписывая поверх существующие файлы

Меняем владельца на mysql

chown -R mysql. /var/lib/mysql

Ну а дальше рестартим сервер, смотрим логи, всё проверяем.

Если всё ок, то радуемся