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

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

Сведения

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

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

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

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

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

В обновлении на версию 7.3.1 необходимо учитывать, что:

  • При обновлении расширения pg_hint_plan его скрипты выполняют пересоздание таблицы pg_hint_plan.hints. В связи с этим, все ранее назначенные права на эту таблицу будут утеряны.
Сведения

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

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-7.3.1-{OS}.x86_64.rpm
    Подсказка

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

       sudo dnf -y install pangolin-ansible-venv-controller-7.3.1-sberlinux9.x86_64.rpm
  3. Активируйте виртуальное окружение для начала последующей установки:

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

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

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

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

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

Внимание!

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

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

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

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

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

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

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

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

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

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

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

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