MySQL InnoDB кластер. Установка и настройка. Подключение MySQL роутера.

MySQL InnoDB кластер

Начнем установку, будем использовать 3 сервера для непосредственно mysql и 1 сервер для подключения к нашему кластеру — mysql роутер.

сервера для mysql

и сервер для роутера

OS Centos 7 c выключенный selinux и firewalld. Mysql будем использовать версии 5.7

Подключаем репозиторий

выключаем 8 версию и включаем 5.7

Правим /etc/my.cnf

Mysql вешаем на порт 3301.
На порту 33011 будет происходить обмен данными между серверами кластера.

Файл /etc/my.cnf мы приводим к такому виду на всех трех серверах кластера, меняем IP в переменных loose-group_replication_local_address и report_host, а также изменяем server_id — для каждого сервера уникальный.

Запускаем mysql, проводим первоначальную настройку.

Начнем создание кластера, для начало создадим на всех 3-х серверах пользователя cladmin, для это воспользуемся консоль mysqlsh

Вывод cl.status() примерно должен быть таким

Когда вносим изменения в конфигураию кластера, обязательно выполняем команду

Аналогичные действия выполняем на всех 3-х серверах, не забываем прописать верные IP и ID в /etc/my.cnf (server_id, loose-group_replication_local_address, report_host) 

После того как предыдущие шаги выполнены на нодах которые мы подключаем (2-й и 3-й сервер в нашем примере), выполняем

После данной процедуры на втором сервере, возвращаемся на первый сервер

Также выполняем dba.configureLocalInstance() на втором сервере !!!

Вывод cluster.status() должен стать примерно таким

По аналогичной схеме добавим 3-й сервер.

Если в будущем мы планируем расширить кластер до 5 или более серверов, нам надо будет отредактировать whitelist, это можно сделать через mysqlsh перейдя в sql режим или напрямую в /etc/my.cnf (не забыть перезагрузить демоны mysql).

Пример как сделать используя консоль mysqlsh (поочередно на каждой из RW нод):

После добавления всех 3 серверов cluster.status() будет возвращать следующее:

Если кластер развалится до состояния одного сервера, его надо будет запускать с параметром loose-group_replication_bootstrap_group = ON в /etc/my.cnf
После запуска параметр надо будет выключить обратно, в противном случаи этот сервер всегда будет отделяться от кластера и работать самостоятельно.

Настройка Mysql роутера.

Добавим репу и поставим пакет

Создаем каталог для конфигурационных файлов нашего кластера:

Настройку будем делать с помощью bootstrap, при указании IP адреса, необходимо указать адрес текущего RW сервера

Результат успешной конфигурации, вывод:

Порт 6446 — для подключений RW
Порт 6447 — для подключений RO

Создадим systemd service файл чтобы запускать mysql роутер с нашими сгенерированными конфигурационными файлами

Включим в автозагрузку и запустим наш роутер:

Проверяем

Ссылки на материалы

https://mysqlserverteam.com/mysql-innodb-cluster-real-world-cluster-tutorial-for-oel-fedora-rhel-and-centos/

http://mysqlserverteam.com/mysql-innodb-cluster-a-hands-on-tutorial/

https://habr.com/ru/post/423587/

https://habr.com/ru/post/332518/

https://www.youtube.com/watch?v=CbmNWAxgMf0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *