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

OSCHINA-MIRROR/mirrors-Cetus

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

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

Введение

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

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

  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';

Установка

На главном и узловом компьютерах узлов установите пакеты RPM с помощью команды yum:

  • На главном и узловом компьютере узлов установите следующие пакеты Perl:

    • perl-DBD-MySQL
    • perl-Config-Tiny
    • perl-Log-Dispatch
    • perl-Parallel-ForkManager
    • perl-Config-IniFiles
  • Установите пакет mha4mysql-node-0.56-0.el6.noarch.rpm на главный и узловой компьютеры узлов.

rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
  • Установите пакет mha4mysql-manager-0.56-0.el6.noarch.rpm только на главный компьютер узла.
rpm -ivh mha4mysql-manager-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 modified masterha_secondary_check command
chmod +x /usr/bin/masterha_secondary_check

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

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

В файле конфигурации также есть переменная proxy_conf, которая содержит информацию о подключении к Cetus. Значение этой переменной можно найти в файле cetus.cnf:

Переменная middle_ipport содержит список IP-адресов и портов для групп Cetus. Каждая группа Cetus представлена одним IP-адресом и портом, разделёнными двоеточием. Группы Cetus разделены запятыми.

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

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

Уведомления при изменении

Чтобы изменить настройки уведомлений при переключении, выполните следующие действия:

  • В файле /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 и измените вызов curl.

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

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-Cetus.git
git@api.gitlife.ru:oschina-mirror/mirrors-Cetus.git
oschina-mirror
mirrors-Cetus
mirrors-Cetus
master