Часто сервер MySQL необходимо включить в реплику прямо во время его работы без всяких пауз и даунтаймов самого приложения. Сделать это можно с помощью утилиты Xtrabackup. Весь процесс занимает 3 шага:
Этот пункт нужно пропустить, если мастер уже настроен.
Это нужно сделать только один раз.
Логинимся на мастер сервер и добавляем в секцию [mysql] конфига my.cnf:
server-id = 1 binlog-format = mixed log-bin = mysql-bin sync_binlog = 1
После этого перезапускаем сервер (команды выполняем на мастере):
/etc/init.d/mysql restart
Мы включили бинарные логи, которые нужны для работы репликации. Это единственная перезагрузка, которая понадобится за весь процесс. Далее устанавливаем права доступа для реплики:
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.0.2' IDENTIFIED BY 'BZLVT3BthaEB';
# 10.10.0.2 – ip сервера, который будет служить слейвом
Готовим данные для копирования (команды выполняем на мастере):
innobackupex --user=root --password=pwd /root
# самая медленная операция
Накатываем лог на данные в созданной папке (например, /root/2019-02-09_21-02-52)
innobackupex --user=root --password=pwd --apply-log /root/2019-02-09_21-02-52
# пройдет в несколько раз быстрее, чем предыдущая
Копируем эту же папку на слейв:
scp -r /root/2019-02-09_21-02-52 root@10.2.0.2:/root/master
MySQL нового слейва должен быть остановлен. Готовим данные (команды выполняем на слейве):
rm -rf /var/lib/mysql mv /root/master /var/lib/mysql chown -R mysql:mysql /var/lib/mysql /etc/init.d/mysql start
Перед включением выясняем название и позицию бинарного лога:
cat /var/lib/mysql/xtrabackup_binlog_info
Результат будет иметь такой вид:
mysql-bin.000001 15386388
После этого выполняем такой MySQL-запрос на слейве используя эти данные:
CHANGE MASTER TO MASTER_HOST='10.10.0.1', MASTER_USER='replica', MASTER_PASSWORD='BZLVT3BthaEB', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=15386388;
# 10.10.0.1 – ip нашего мастера
И еще один запрос тут же для запуска реплики:
SLAVE START;
Проверяем статус репликации:
SHOW SLAVE STATUSG
... Slave_IO_Running: Yes ... Slave_SQL_Running: Yes ... Seconds_Behind_Master: 13 ...
# Все хорошо и реплика работает
Ждем пока Seconds_Behind_Master станет стремиться к нулю.
Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…