Создание дополнительных SLAVE серверов в кластер MySQL без остановки Master. Копирование SLAVE серверов.

Дано: MySQL 8.0.22 Community Edition из официального репозитория, ОС Oracle Linux 7.9 (OL). MySQL кластер с Master-Slave репликацией, построен на базе встроенного функционала.

Назначение репликации:

  • разделение операций чтения и записи между Master и Slave сервером приложениями, которые умеют так работать
  • резервное копирование производится на Slave сервере не затрагивая производительность Master
  • на Slave производятся ресурсоёмкие операции чтения – аналитика, отчеты, справочники для центрального API

Требуется: в период высокой нагрузки развернуть дополнительные Slave без остановки Master, остановка Slave возможна на краткий разумный времени.


Основной Slave сервер – Slave01. Новый Slave сервер – Slave02

1. Установка новой ОС Slave02, или разворачивание из шаблона. Версия ОС может быть иной, версия MySQL тойже, что на Slave01

2. Выключить сервис MySQL Slave02

3. Перенести конфигурацию MySQL с Slave01 на Slave02 (в OL /etc/my.cnf и /etc/my.cnf.d/* ), внести в конфигурацию skip-slave-start что бы SLAVE не запускался автоматически в процессе работы

4.  В конфигурации MySQL на Slave02 изменить server_id на уникальный в пределах кластера

5. Подготовить Slave01 к донорству и остановке:

  • проверить состояние реплики SHOW SLAVE STATUS;
  • остановить репликацию STOP SLAVE;
  • остановить сервис MySQL

6. Скопировать datadir, logdir с Slave01 на Slave02 (убедиться что все пути и каталоги соответствуют ранее скопированной конфигурации).

7. Восстановить работу сначала Slave01, затем Slave02:

  •  на Slave02 удалить auto.cnf из datadir – это создаст новый uuid инстанса
  • запустить сервис MySQL
  • запустить репликацию START SLAVE;
  • проверить состояние реплики SHOW SLAVE STATUS;

8. Если Slave02 корректно начал работу:

  • убрать skip-slave-start из конфигурации Slave02
  • перезапустить и убедиться, что все работает корректно при автоматическом запуске SHOW SLAVE STATUS;

 

Close Menu