Обновление#
Данный раздел рассматривает процесс обновления СУБД Pangolin.
Содержание#
Подготовка к обновлению#
Для подготовки к процессу установки продукта СУБД Pangolin выполните следующие пункты:
Ознакомьтесь с общей информацией процесса обновления СУБД Pangolin.
Сверьте текущую версию СУБД с поддерживаемыми для обновления и определитесь с типом обновления.
Ознакомьтесь с примерным временем обновления СУБД Pangolin для оценки затрачиваемого времени.
Подберите способ обновления СУБД Pangolin.
При возникновении проблем в процессе обновления обратитесь к разделу «Часто встречающиеся проблемы и пути их устранения».
По окончанию процесса обновления рекомендуется ознакомиться с разделом «Чек-лист проверки корректности работы».
Описание#
В СУБД Pangolin предусмотренно два типа обновления:
Обновление исполняемых файлов – процесс обновления, в ходе которого достаточно просто заменить старые файлы (исполняемые, конфигурационные, файлы расширений) их новыми версиями, либо обновить версии утилит, входящих в состав дистрибутива. Формат внутреннего хранилища при таких модификациях не изменяется. Данное обновление необходимо проводить, например, при изменении конфигурационных файлов, используемых утилит и расширений или при доработке кода самой БД, когда в формат внутреннего хранилища БД не вносятся никакие изменения, в том числе ни один из критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных» не выполняется. Данный тип включает в себя запуск утилиты
inplace_upgrade- это необходимо, если версия, на которую происходит обновление, содержит в себе изменения данных системного каталога, которые необходимо обновить. В старой терминологии для обозначения этого типа обновления использовалось «минорное обновление СУБД».Обновление с переносом данных – процесс обновления более сложный, чем просто замена одних файлов другими. В данном случае процесс дополнительно усложнен необходимостью проведения тестов, проверяющих возможность обновиться, а также миграцией данных, так как при этом типе обновления вносятся изменения в формат внутреннего хранилища БД. Данное обновление необходимо проводить в случае, если выполняется один или несколько критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных». В старой терминологии для обозначения этого типа обновления использовалось «мажорное обновление СУБД».
Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных:
изменение мажорной версии ванильного PostgreSQL;
изменение состава или структуры системных каталогов;
изменение состава или структуры встроенных функций;
изменение состава или структуры встроенных представлений;
изменение файловой структуры, в том числе алгоритма шифрования;
изменение состава конфигурационных файлов;
изменение списка встроенных типов данных.
Таблица поддерживаемых для обновления версий СУБД#
Внимание
В остальных случаях (не отраженных в таблице) обновление на актуальную версию (6.5.1) невозможно.
Перед обновлением стендов с версией Pangolin 4.x.x необходимо выполнить промежуточный этап обновления до версии 5.5.5. Инструкцию по обновлению на версию 5.5.5 смотрите в документации дистрибутива данной версии.
Конфигурация |
Тип обновления |
Исходная версия |
|---|---|---|
с СЗИ |
Обновление с переносом данных |
5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.5 |
без СЗИ |
Обновление с переносом данных |
5.4.0, 5.4.1, 5.4.3, 5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.5 |
с СЗИ |
Обновление исполняемых файлов |
6.1.5, 6.1.6, 6.1.7, 6.1.8, 6.1.9, 6.1.10, 6.2.0, 6.2.1, 6.3.0, 6.4.0, 6.4.1, 6.4.2, 6.4.3, 6.5.0 |
без СЗИ |
Обновление исполняемых файлов |
6.1.5, 6.1.6, 6.1.7, 6.1.8, 6.1.9, 6.1.10, 6.2.0, 6.2.1, 6.3.0, 6.4.0, 6.4.1, 6.4.2, 6.4.3, 6.5.0 |
Обозначение поля конфигурации
Тип конфигурации определен следующим образом:
с СЗИ – включено хотя бы одно из СЗИ (TDE, защита конфигурации, защита от привилегированных пользователей) включено;
без СЗИ – СЗИ отключены.
Обновление стендов с предустановленным расширением timescaledb
Обновление стендов с предустановленным расширением timescaledb необходимо производить по специальному сценарию.
Варианты сценариев обновления:
Исходная версия Pangolin |
Версия Pangolin после обновления |
Исходная версия TimescaleDB |
Версия TimescaleDB после обновления |
Комментарий |
|---|---|---|---|---|
4.x.x |
5.x.x |
< 2.4.0 |
- |
Обновление невозможно |
4.x.x |
5.5.latest |
2.4.0 |
2.4.0 |
В ходе обновления Pangolin не выполняется повышение версии расширения |
5.2.x - 5.5.latest-1 |
5.5.latest |
2.4.2 |
2.4.2 |
В ходе обновления Pangolin не выполняется повышение версии расширения |
5.5.latest |
5.5.latest |
2.4.0 |
2.14 |
Обновление |
5.5.latest |
5.5.latest |
2.4.2 |
2.14 |
Обновление |
5.5.latest |
6.latest |
2.14 |
2.14 |
В ходе обновления Pangolin не выполняется повышение версии расширения |
6.1.x |
6.latest |
2.11 |
2.11 |
В ходе обновления Pangolin не выполняется повышение версии расширения |
6.latest |
6.latest |
2.11 |
2.14 |
Обновление расширения |
Как определить версию, установленную на сервере#
Для получения названия и версии продукта серверной части необходимо подключиться к серверу Pangolin и выполнить команды из таблицы ниже. Результат выполнения зависит от названия, номера версии и платформы, для которой была выполнена сборка.
Действие |
Команда |
Тип значения |
Примеры выполнения команды |
|---|---|---|---|
Название продукта |
|
Строковое значение |
PostgreSQL {postgres_version} on x86_64-apple-darwin19.4.0, compiled by Apple clang version 11.0.0 (clang-1100.0.33.17), 64-bit |
Номер open-source версии |
|
Строковое значение |
{postgres_version} |
|
Числовое значение |
110007 |
|
Номер Pangolin версии |
|
Строковое значение |
{version} |
|
Строковое значение |
Platform V Pangolin DB {version} |
Время обновления#
В данном разделе приведена информация о произведенных тестовых обновлениях СУБД Pangolin разной конфигурации и версии под нагрузкой.
Методика тестирования:
Установка и обновление продуктов версии:
c 5.5.4 до 6.4.0 - мажорное обновление;
c 6.1.8 до 6.4.0 - минорное обновление с обновлением системных данных;
с 6.1.6 до 6.3.1 - минорное обновление;
с 6.4.1 до 6.4.3 - минорное обновление (патч).
Создание тестовой базы данных и генерация тестовых данных (~100ГБ).
Запуск сценария стабильной нагрузки на время обновления. Алгоритм:
запускается нагрузка, продолжается 5 минут (100TPS);
стартует обновление;
после окончания обновления запускается повторная нагрузка на протяжении 10 минут.
Сравнение результатов
Результаты обновления:
Вариант обновления |
Тип конфигурации |
Время обновления |
Размерность |
|---|---|---|---|
c 5.5.4 до 6.4.0 |
|
25 |
Минуты |
|
64 |
Минуты |
|
c 6.1.8 до 6.4.0 |
|
10 |
Минуты |
|
23 |
Минуты |
|
с 6.1.6 до 6.3.1 |
|
9 |
Минуты |
|
24 |
Минуты |
|
с 6.4.1 до 6.4.3 |
|
11 |
Минуты |
|
32 |
Минуты |
Выбор способа обновления#
Ручное обновление по инструкции выполняется на конечных узлах кластера СУБД. Стоит учитывать, что при ручном обновлении потребуется множество самостоятельных действий по проверке готовности к обновлению, а также созданию резервной копии. Ручное обновление дает возможность самостоятельно адаптировать СУБД под индивидуальные условия и требования к процессу обновления.
Автоматизированное обновление предоставляет быстрый и удобный процесс за счет использования Ansible-скриптов. С помощью инструмента Pangolin Installer процесс обновления СУБД Pangolin становится более простым и интуитивно понятным, а вариант использования Ansible плейбука будет удобен для контроля над процессом. Автоматизированное обновление следует запускать на отдельном хосте не входящем в кластер СУБД Pangolin.
Далее представлена небольшая сравнительная таблица:
Ручное обновление |
Автоматизированное обновление |
|
|---|---|---|
Требуемые действия |
Максимальные |
Минимальные |
Вероятность ошибок, обусловленных человеческим фактором |
Высокий риск |
Риск отсутствует |
Скорость установки |
Длительная |
Быстрая |
Ручная работа на сервере экземпляра СУБД |
Да (по SSH) |
Нет |