Автоматизированное обновление СУБД Pangolin
При переходе к данному разделу предполагается, что изучена информация общего блока«Обновление».
Автоматизированное обновление следует запускать на отдельном хосте, не входящем в экземпляр кластера СУБД Pangolin.
Автоматизированное обновление поддерживает обновление исполняемых файлов с обновлением данных системных каталогов и без, а также обновление с переносом данных.
Ограничения и требования
Перед запуском Ansible плейбука, либо перед началом использования инструмента Pangolin Installer, убедитесь, что:
- На всех узлах, включая узел запуска, установлены требуемые пакеты, указанные в разделе «Список пакетных зависимостей, необходимых для корректной работы Ansible-скриптов».
- Установлена версия пакета
ansible-coreне ниже 2.11.0 и не выше 2.12.0. Данный пакет устанавливается в рамках поставляемого пакетаansible-venv-controller, который входит в список пакетных зависимостей. - Выполнено предусловие.
В обновлении на версию 7.3.1 необходимо учитывать, что:
- При обновлении расширения
pg_hint_planего скрипты выполняют пересоздание таблицыpg_hint_plan.hints. В связи с этим, все ранее назначенные права на эту таблицу будут утеряны.
В случае сценария обновления с переносом данных, а также требующего обновления системных данных каталога, дополнительно убедитесь, что отсутствуют все внешние подключения к СУБД. В случае их наличия, необходимо произвести их отключение до начала процесса обновления.
Перед процессом обновления отключите все сторонние системы резервного копирования, не входящие в состав дистрибутива СУБД Pangolin.
Предусловие
Выполните настройку виртуального окружения перед началом использования скриптов автоматизации:
-
Разархивируйте rpm-пакет
venvиз 3rdparty части:tar -xz -f 3rdparty/3rdparty.tar.gz ./pangolin-ansible-venv-controller* -
Выполните установку пакета:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-ansible-venv-controller-7.3.1-{OS}.x86_64.rpmsudo apt install pangolin-ansible-venv-controller-7.3.1_amd64.debsudo apt-get install pangolin-ansible-venv-controller-altlinux{version_OS}.x86_64.rpmПодсказкаПример готовой команды:
sudo dnf -y install pangolin-ansible-venv-controller-7.3.1-sberlinux9.x86_64.rpm -
Активируйте виртуальное окружение для начала последующей установки:
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, автоматический откат будет отключен, но не будет заблокирован процесс обновления.