1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gitcrazy-cetus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
cetus-mha.md 5.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 15:50 8feb600

Cetus + MHA: высокодоступное решение

Введение

Cetus использует улучшенную версию MHA для обеспечения высокой доступности. DBA в исходной MHA добавлены модули для изменения состояния Cetus и функции уведомления по SMS и электронной почте об операциях MHA. Модифицированная версия MHA называется MHA_LD.

Процесс переключения MHA включает аварийное переключение и ручное переключение в режиме онлайн. В качестве примера рассмотрим аварийное переключение (failover).

Процесс работы MHA_LD

  1. Обнаружение того, что текущая основная база данных недоступна, и подготовка к переключению.
  2. Изменение состояния текущей основной базы данных на «поддержание» и типа на «только для чтения» на стороне управления Cetus, отправка уведомления об изменении по SMS.
update backends set state='maintaining' , type='ro' where address='172.0.0.1:3306';
  1. Повышение статуса реплики MySQL до новой основной базы данных.
  2. Изменение состояния новой основной базы данных на «неизвестно» и типа на «чтение-запись» на стороне управления Cetus, отправка уведомления об изменении по SMS.
update backends set state='unknown' , type='rw' where address='172.0.0.2:3306';

Установка

На узлах master и node установите пакеты RPM с помощью yum.

Для узлов master и node:

yum install -y  perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles

Для узла master:

rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

Для узлов master и node:

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 

Замените все файлы в каталоге /usr/share/perl5/vendor_perl/MHA/ на файлы из папки mha_ld/src.

Замените команду masterha_secondary_check на команду из папки mha_ld/masterha_secondary_check.

which masterha_secondary_check
/usr/bin/masterha_secondary_check
rm /usr/bin/masterha_secondary_check
cd /usr/bin/
upload the modified masterha_secondary_check file
chmod +x /usr/bin/masterha_secondary_check

Конфигурация

После установки MHA_LD настройте запуск файла конфигурации MHA (cnf), следуя инструкциям в файле sample.cnf в папке mha_ld/. Параметры можно найти в официальной документации MHA на GitHub.

В файле конфигурации (cnf) есть переменная proxy_conf (необходимо указать абсолютный путь), содержимое которой можно найти в файле cetus.cnf в папке mha_ld/:

Этот файл содержит информацию о соединениях Cetus. Значение middle_ipport указывает на несколько групп Cetus. Каждая группа состоит из IP-адреса и порта, разделённых двоеточием. Группы разделены запятыми.

Значение middle_user указывает имя пользователя для входа в систему для каждой группы Cetus. Оно должно совпадать со значением переменной admin-username в файле конфигурации Cetus. Если несколько групп Cetus управляются одним MHA_LD, имена пользователей должны быть одинаковыми.

Значение middle_pass указывает пароль для входа в систему для каждой группы Cetus. Он должен совпадать со значением переменной admin-password в файле конфигурации Cetus. Если несколькими группами Cetus управляет один MHA_LD, пароли должны быть одинаковыми.

Уведомления при переключении

Чтобы изменить уведомления при переключении, необходимо внести изменения в файл /usr/share/perl5/vendor_perl/MHA/ManagerConst.pm. В этом файле есть переменная MOBILE_PHONES, которая определяет список получателей уведомлений по SMS. Например:

our @MOBILE_PHONES = (
  1234567890,  # zhang
  2345678901,  # wang
);

Кроме того, в нескольких файлах, таких как HealthCheck.pm, MasterFailover.pm, MasterMonitor.pm и ProxyManager.pm, используется функция send_alert для отправки уведомлений по SMS. Необходимо изменить вызовы curl в этих файлах.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gitcrazy-cetus.git
git@api.gitlife.ru:oschina-mirror/gitcrazy-cetus.git
oschina-mirror
gitcrazy-cetus
gitcrazy-cetus
master