Перейти к основному содержимому

Автоматизированное обновление СУБД Pangolin

Сведения

При переходе к данному разделу предполагается, что изучена информация общего блока «Обновление».

Автоматизированное обновление следует запускать на отдельном хосте, не входящем в экземпляр кластера СУБД Pangolin.

Автоматизированное обновление поддерживает обновление исполняемых файлов с обновлением данных системных каталогов и без, а также обновление с переносом данных.

Ограничения и требования​

Перед запуском Ansible плейбука, либо перед началом использования инструмента Pangolin Installer, убедитесь, что:

Сведения

В случае сценария обновления с переносом данных, а также требующего обновления системных данных каталога, дополнительно убедитесь, что отсутствуют все внешние подключения к СУБД. В случае их наличия, необходимо произвести их отключение до начала процесса обновления.

warning

Перед процессом обновления отключите все сторонние системы резервного копирования, не входящие в дистрибутив СУБД Pangolin.

Предусловие​

Выполните настройку виртуального окружения перед началом использования скриптов автоматизации:

  1. Разархивируйте rpm-пакет venv из 3rdparty части:

    tar -xz -f 3rdparty/3rdparty.tar.gz ./pangolin-ansible-venv-controller*
  2. Выполните установку пакета:

    sudo dnf install pangolin-ansible-venv-controller-{product_version}-{OS}.x86_64.rpm
    Подсказка

    Пример готовой команды:

    sudo dnf -y install pangolin-ansible-venv-controller-6.7.6-sberlinux8.x86_64.rpm

  3. Активируйте виртуальное окружение для начала последующей установки:

    source /opt/pangolin-ansible-venv-controller/bin/activate

Выбор способа обновления​

Автоматизированное обновление СУБД, как и автоматизированная установка, доступно двумя способами:

  • Запуск Ansible плейбуков предназначен больше для инженеров. Он более нативный и может использоваться, например, при интеграции его в работу собственных автоматизированных сценариев пользователя.
  • Запуск обновления с помощью инструмента Pangolin Installer предназначен скорее для пользователей, которые хотят максимально упростить все процессы по использованию сценариев и не погружаться в тонкости их запуска. Инструмент предоставляет интуитивный запуск сценария, не требующего от пользователя никаких дополнительных шагов, кроме установки rpm/deb-пакета инструмента с помощью пакетного менеджера.

Воспользуйтесь одной из предложенных инструкций, в зависимости от выбора сценария:

Внимание!

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

warning

Если используется собственное решение для автоматизированного обновления и планируете переход с версии 6.4.2-cve2, необходимо учитывать, что в версии 6.4.2-cve2 для устранения критических уязвимостей применялись специальные метки Epoch в пакетных менеджерах. В последующих версиях продукта эти метки не используются, поэтому при обновлении без применения существующих инструментов (Ansible плейбуков или Pangolin Installer) потребуется в ручном режиме определить зависимости между пакетами при установке rpm/deb-пакетов компонентов более новой версии, не использующих Epoch.

Особенности, связанные с использованием Epoch, влияют только на обновление с версии 6.4.2 (6.4.2-cve2) на более высокие версии при использовании собственной автоматизации.

warning

В случае обновления СУБД Pangolin на ОС Альт СП Релиз 10 версии 2 до текущей версии, автоматический откат в случае падения будет невозможен.

Схемы процесса автоматизированного обновления​

Схемы процессов различных сценариев обновления СУБД Pangolin автоматизированными скриптами представлены в разделе «Схемы работы сценариев автоматизации СУБД Pangolin».

Время обновления​

В данном разделе приведена информация о произведенных обновлениях СУБД Pangolin под нагрузкой, при помощи скриптов автоматизации.

Методика тестирования:

  1. Установка и обновление продуктов версии:

    • c 5.5.6 до 6.7.0 - обновление с переносом данных;
    • с 6.6.3 до 6.7.0 - обновление исполняемых файлов.
  2. Создание тестовой базы данных и генерация тестовых данных.

  3. Запуск сценария стабильной нагрузки на время обновления. Алгоритм:

    • запускается нагрузка, продолжается 5 минут (100TPS);
    • стартует обновление;
    • после окончания обновления запускается повторная нагрузка на протяжении 10 минут.
  4. Сравнение результатов

Результаты обновления:

  • Обновление с переносом данных (c 5.5.6 до 6.7.0):

    Объем данныхТип конфигурацииВремя обновленияРазмерность
    100 ГБstandalone35Минуты
    100 ГБcluster75Минуты
    250 ГБstandalone70Минуты
    250 ГБcluster142Минуты
    500 ГБstandalone100Минуты
    500 ГБcluster269Минуты
    800 ГБstandalone159Минуты
    800 ГБcluster366Минуты
  • Обновление исполняемых файлов (с 6.6.3 до 6.7.0):

    Объем данныхТип конфигурацииВремя обновленияРазмерность
    100 ГБstandalone13Минуты
    100 ГБcluster28Минуты
    500 ГБstandalone13Минуты
    500 ГБcluster28Минуты
    800 ГБstandalone13Минуты
    800 ГБcluster28Минуты

Обновление компонентов​

Обновление компонентов происходит во время сценария обновления СУБД.

Проверка результатов обновления​

Для проверки успешности обновления СУБД рекомендуется использовать чек-лист проверки корректности работы.

Восстановление продукта после неудачного обновления​

Сценарий осуществляется автоматически, в случае возникновения проблемы, инструментом Pangolin Installer или Ansible плейбуком.

Пример сообщения из лог-файла после восстановления:

RLM.FAIL__E05002:В процессе обновления возникла ошибка. Было произведено восстановление версии СУБД Pangolin до запуска обновления. Ознакомьтесь с логами.__RLM.FAIL
примечание

Для восстановления кластера СУБД в исходное состояние, в случае ошибки при обновлении, проверяется доступность исходных rpm/deb-пакетов компонентов. С помощью параметра pangolin_block_update можно контролировать блокировку обновления при отсутствии какого-либо или всех пакетов. Значение по умолчанию – true. В случае значения false, автоматический откат будет отключен, но не будет заблокирован процесс обновления.

Внимание!

Автоматизированный откат с версии 6.5.2 при наличии системы хранения секретов ОдинКлюч невозможен.

Функция автоматизированного отката управляется параметром handle_update_errors:

  • по умолчанию он включен;
  • при необходимости можно отключить автоматический откат при падении;
  • возможно также явное включение этой функции.