Проект Docker Compose для MySQL MHA, основанный на Docker 1.13.1.
Позволяет быстро запустить кластер MasterHA в режиме GTID, предназначен для обучения и исследований с использованием MySQL и Docker.
master
— сервис Docker compose с именем master
, контейнер главного сервера по умолчанию использует порт 3406
slave_1
— сервис Docker compose с именем slave_1
, контейнер вторичного сервера по умолчанию использует порт 3407
manager
— сервис Docker compose с именем manager
, служба управления MHA
mha_share
— общие данные между контейнерами
account.env
Сохраняет общие переменные окружения для всех контейнеров, такие как имя пользователя и пароль для учетной записи MySQL repl
employees_db
Скрипт инициализации MySQL при старте контейнера master
- employees_master
Конфигурационные файлы, логи и базы данных для контейнера master
employees_slave_1
Конфигурационные файлы, логи и базы данных для контейнера slave_1
employees_share
Общие данные между контейнерами
mha_manager
Директория с Dockerfile и зависимыми файлами для создания образа Docker mha_manager
, указано в docker-compose.yml
mha_node
Директория с Dockerfile и зависимыми файлами для создания образа Docker mha_node
, указано в docker-compose.yml
reset.sh
Остановка проекта и удаление всех логов и баз данных (кроме конфигурационных файлов)
shutdown.sh
Простое завершение проекта
start.sh
master
и slave_ Yöntem
masterha_check_ssh
masterha_check_repl
masterha_manager
и запись логов в файл mha.log
в директории employees_share
2. После прогрева запустите скрипт `start.sh` для создания кластера MHA.```shell
➜ mha git:(master) . /start.sh
>>> Начало работы Docker Compose...
Запуск mha_mha_manager_1
Запуск mha_mha_share_1
Запуск mha_mha_node_1
mha_master_1 уже актуален
mha_slave_1_1 уже актуален
mha_manager_1 уже актуален
>>> Настройка SSH...
fd9686976e61 инициализация SSH...
fd9686976e61 Успешное изменение пароля пользователя root.
fd9686976e61 SSH-сервис успешно перезапущен.
fd9686976e61 Успешное создание ключа SSH.
...
fd9686976e61 Успешное копирование ключа SSH на менеджер.
fd9686976e61 Успешное копирование ключа SSH на мастер.
...
>>> Создание пользователя MySQL для репликации с именем 'repl' в контейнере мастера...
mysql: [Предупреждение] Использование пароля на командной строке может представлять риск безопасности.
>>> Настройка репликации с режимом GTID...
Настройка slave_1 754214d5bdfc...
mysql: [Предупреждение] Использование пароля на командной строке может представлять риск безопасности.
>>> Инициализация конфигурации MHA...
Конфигурация MHA "/mha_share/application.cnf" ещё не инициализирована.
Добавлен хост "master" в файл конфигурации MHA.
Добавлен хост "slave_1" в файл конфигурации MHA.
**********************************************
Проверка SSH MHA...
Ср 15 фев 2017 11:04:08 MSK - [Предупреждение] Глобальный файл конфигурации /etc/masterha_default.cnf не найден. Пропуск.
...
Ср 15 фев 2017 11:04:08 MSK - [Отладка] OK.
Ср 15 фев 2017 11:04:09 MSK - [Информация] Все тесты SSH-соединений прошли успешно.
**********************************************
Проверка репликации MHA до MySQL...
Ср 15 фев 2017 11:04:09 MSK - [Предупреждение] Глобальный файл конфигурации /etc/masterha_default...
cnf не найден. Пропуск. . . . MySQL Replication Health is OK.
Начало работы менеджера MHA с файлом "/mha_share/application.cnf". . . . nohup: перенаправление stderr в stdout
Готово!
## Примечание
```При первом запуске, если не выполнить процесс "подогрева" перед вызовом скрипта `start.sh`, это может привести к ошибкам при создании цепочки главного и реплицированного серверов MySQL из-за незаконченной инициализации MySQL. Если база данных уже была проинициализирована, то процесс "подогрева" не требуется.
## Учебные заметки
1. При первом запуске выполните команду `docker-compose up -d` для инициализации MySQL.
2. Один сервис Docker Compose соответствует одному контейнеру, что позволяет использовать сетевые возможности по умолчанию Docker Compose для создания сети контейнеров. Это позволяет использовать имя сервиса для SSH-соединения.
3. Этот проект предназначен для изучения MySQL MHA-кластера и практики использования Docker.
4. Для использования виртуального IP можно самостоятельно настроить Keepalive или LVS.
## Ссылки
* [Краткое руководство по использованию MHA](https://www.percona.com/blog/2016/09/02/mha-quickstart-guide/)
* [Изображение Docker MySQL](https://hub.docker.com/_/mysql/)
* [Двусторонняя связь с помощью Docker Compose](https://medium.com/@tristan.claverie/well-there-is-in-fact-a-simpler-solution-than-creating-a-network-do-nothing-at-all-docker-f38e93326134#.l6uupkacv)
* [Как настроить автоматическое переключение MySQL master/slave репликации с использованием MHA](http://www.arborisoft.com/how-to-configure-mysql-masterslave-replication-with-mha-automatic-failover/)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )