Отключение отказоустойчивости#

  1. Выберете сервер, который останется рабочим сервером после отключения отказоустойчивости.

    Примечание

    Далее по инструкции необходимо выполнить действия на рабочем сервере, и отдельно на отключаемом сервере.

  2. Убедитесь, что VIP находится на рабочем сервере:

    ip a | grep <VIP IP>
    

    Примечание

    Если VIP отсутствует на рабочем сервере необходимо выполнить переключение по инструкции управления отказоустойчивостью

  3. На рабочем сервере откройте конфигурационный файл configs/replication.yaml для редактирования любым текстовым редактором и установите значения для полей service_label и mysql_server_id как на примере:

    # service_label — лейбл для обозначения сервисов сервера (основной, резервный).
    # Имя должно быть не длиннее 7 символов
    service_label: ""
    
    # mysql_server_id — идентификатор mysql сервера.
    # Каждый новый сервер должен иметь отличный идентификатор от предыдущего.
    # Для основного сервера установите значение 1, для резервного — значение 2.
    mysql_server_id: 0
    
    # start_octet — используется для определения сабсети для сервисов. Для каждого нового сервера необходимо инкрементировать на 10.
    start_octet: <менять не требуется>
    

    Предупреждение

    Обратите внимание, что поле start_octet менять не требуется.

  4. Получите список используемых нод Docker:

    sudo docker node ls
    
  5. Понизьте уровень узла ноды на отключаемом сервере:

    sudo docker node demote <node-id>
    
  6. На отключаемом сервере остановите Docker:

    sudo systemctl disable docker
    sudo systemctl stop docker
    
  7. Удалите ноду отключаемого сервера из кластера:

    sudo docker node rm <node-id>
    
  8. На рабочем сервере выполните обновление с помощью скрипта:

    Примечание

    При запуске скрипта появится предупреждение, что приложение будет недоступно. Необходимо подтвердить дальнейшее выполнение.

    sudo python3 script/update.py
    

    Дождитесь завершения обновления.

  9. На рабочем сервере выполните обновление manticore для корректной работы поиска:

    sudo docker exec -it $(sudo docker ps | grep manticore | awk '{print $1}') \
    rm /var/lib/manticore/manticore.json
    
    sudo docker service update --force \
    $(sudo docker service ls | grep manticore | awk '{print $2}')
    
  10. После обновления необходимо заменить А-запись вашего домена на IP вашего рабочего сервера.

    Предупреждение

    Переключение домена на новый IP может занять до 48 часов. Не отключайте и не переключайте keepalived пока не закончится переключение домена.

  11. После переключения домена остановите работу keepalived на обоих серверах:

    sudo systemctl stop keepalived
    sudo systemctl disable keepalived
    


Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную демонстрацию функционала и помощь по вопросам интеграции мессенджера в вашей компании.