• Работа
  • Linux
  • Репликация большой базы данных mariadb на лету

Репликация большой базы данных 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;

[ Править ]

@kiranananda