Сделаем бекап на мастере в папку /mysql-backup-20
xtrabackup --user= --password=XXXXXXXX /mysql-backup-20/
После этого, надо применить бинарный лог к нашему дампу, иначе оно не «взлетит». Вложенную папку с временем дампа можно увидеть в момент бекапа. =)
innobackupex --apply-log /mysql-backup-20/
Заливаем на SLAVE сервер с мастера
rsync -avpP -e ssh /mysql-backup-20/ root@DESTINATION_MYSQL_HOST:/mysql-backup-20/
Создаём пользователя на MySQL мастере, который может реплицировать:
GRAANT REPLICATION SLAVE ON *.* TO 'MYSQL_REPLICATION_USER'@'DESTINATION_MYSQL_HOST' IDENTIFIED BY 'MYSQL_REPLICATION_PASSWORD'
На SLAVE сервере в настройках сразу меняем server-id и выставляем его выше, чем самый высокий у Вас в кластере MySQL. У меня это значение 10. При этом, на MASTER сервере у меня значение 2. Останавливаем SLAVE сервер и перемещаем скопированную папку туда, где у нас находится база MySQL. По-умолчанию, в Debian подобных системах — это /var/lib/mysql/ , поэтому, у себя я просто удаляю всё из /var/lib/mysql/ на Slave-сервере и переношу в неё всё содержимое из папки /mysql-backup-20/.
Далее, надо сделать правильный chown от юзера, под которым у нас работает на СЛЕЙВ сервере MySQL-Server.
Чисто гипотетически, можно уже стартовать сервер.
Следующие действия — это вернуть на слейв всех пользователей, которые есть на мастере, если требуется (ибо переносится всё с бекапами) Делаем это через удобную утилиту pt-show-grants от проекта Percona
pt-show-grants -h MYSQL_MASTER_HOST -u MYSQL_MASTER_USER -p'MYSQL_MASTER_PASSWORD' > grants.sql
теперь подключаем наш мастер, предварительно посмотрев в файле /mysql-backup-20/xtrabackup_binlog_info информацию о логе и о позиции в этом самом логе. В моём случае — это mysql-bin.000706 169768192. Вписывая их, делаем SQl запрос на слейв:
CHANGE MASTER TO MASTER_HOST='MYSQL_MASTER_HOST', MASTER_USER='MYSQL_REPLICATION_USER', MASTER_PASSWORD='MYSQL_REPLICATION_PASSWORD', MASTER_LOG_FILE = 'mysql-bin.000706', MASTER_LOG_POS = 169768192;
После чего запускаем слейв командой
START SLAVE;