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

Автоматизированное обновление СУБД 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:

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