Репликация большой базы данных mariadb на лету
База данных где-то в 500гб залетеа на слейв минут за 40. Простой был в конце около 5 минут. Способ рабочий, рекомендую!
На слейве
mkdir -p /tmp/backup_full
chmod 777 /tmp/backup_full
На мастере
mariabackup --backup --stream=xbstream --user=root --password=pass | pigz -p 8 | ssh user@10.10.10.8 "pigz -dc -p 8 | mbstream -x -C /tmp/backup_full"
На слейве
systemctl stop mariadb
rm -rf /var/lib/mysql/*
Получаем координаты GTID. Записываем mysql-bin.628955 4026069 0-155-27884134492
cat /tmp/backup_full/xtrabackup_binlog_info
Переносим данные в боевой каталог
mariabackup --move-back --target-dir=/tmp/backup_full
chown -R mysql:mysql /var/lib/mysql/
systemctl start mariadb
Поднимаем репликацию
SET GLOBAL gtid_slave_pos = "0-155-27884134492";
CHANGE MASTER TO
MASTER_HOST='10.10.10.15',
MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='pass',
MASTER_USE_GTID=slave_pos;
START SLAVE;
SHOW SLAVE STATUS\G;
[ Править ]
