Часто сервер 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 станет стремиться к нулю.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…