Обновление
Данный раздел рассматривает процесс обновления СУБД Pangolin.
Содержание
Подготовка к обновлению
Для подготовки к процессу установки продукта СУБД Pangolin выполните следующие пункты:
- Ознакомьтесь с общей информацией процесса обновления СУБД Pangolin.
- Сверьте текущую версию СУБД с поддерживаемыми для обновления и определитесь с типом обновления.
- Оз накомьтесь с примерным временем обновления СУБД Pangolin для оценки затрачиваемого времени.
- Подберите способ обновления СУБД Pangolin.
При возникновении проблем в процессе обновления обратитесь к разделу «Часто встречающиеся проблемы и пути их устранения».
По окончанию процесса обновления рекомендуется ознакомиться с разделом «Чек-лист проверки корректности работы».
Описание
В СУБД Pangolin предусмотренно два типа обновления:
- Обновление исполняемых файлов – процесс обновления, в ходе которого достаточно просто заменить старые файлы (исполняемые, конфигурационные, файлы расширений) их новыми версиями, либо обновить версии утилит, входящих в состав дистрибутива. Формат внутреннего хранилища при таких модификациях не изменяется. Данное обновление необходимо проводить, например, при изменении конфигурационных файлов, используемых утилит и расширений или при доработке кода самой БД, когда в формат внутреннего хранилища БД не вносятся никакие изменения, в том числе ни один из критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных» не выполняется. Данный тип включает в себя запуск утилиты
inplace_upgrade
- это необходимо, если версия, на которую происходит обновление, содержит в себе изменения данных системного каталога, которые необходимо обновить. В старой терминологии для обозначения этого типа обновления использовалось «минорное обновление СУБД». - Обновление с переносом данных – процесс обновления более сложный, чем просто замена одних файлов другими. В данном случае процесс дополнительно усложнен необходимостью проведения тестов, проверяющих возможность обновиться, а также миграцией данных, так как при этом типе обновления вносятся изменения в формат внутреннего хранилища БД. Данное обновление необходимо проводить в случае, если выполняется один или несколько критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных». В старой терминологии для обозначения этого типа обновления использовалось «мажорное обновление СУБД».
Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных:
- изменение мажорной версии ванильного PostgreSQL;
- изменение состава ил и структуры системных каталогов;
- изменение состава или структуры встроенных функций;
- изменение состава или структуры встроенных представлений;
- изменение файловой структуры, в том числе алгоритма шифрования;
- изменение состава конфигурационных файлов;
- изменение списка встроенных типов данных.
Таблица поддерживаемых для обновления версий СУБД
В остальных случаях (не отраженных в таблице) обновление на актуальную версию (6.5.0) невозможно.
Перед обновлением стендов с версией 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 не выполняется повышение версии расширения timescaledb |
5.2.x - 5.5.latest-1 | 5.5.latest | 2.4.2 | 2.4.2 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb |
5.5.latest | 5.5.latest | 2.4.0 | 2.14 | Обновление timescaledb в рамках одной версии Pangolin |
5.5.latest | 5.5.latest | 2.4.2 | 2.14 | Обновление timescaledb в рамках одной версии Pangolin |
5.5.latest | 6.latest | 2.14 | 2.14 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb . Обновление с 5.x.x до 6.x.x допустимо только при версии timescaledb 2.14 |
6.1.x | 6.latest | 2.11 | 2.11 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb |
6.latest | 6.latest | 2.11 | 2.14 | Обновление расширения timescaledb в рамках одной версии Pangolin |
Как определить версию, установленную на сервере
Для получения названия и версии продукта серверной части необходимо подключиться к серверу Pangolin и выполнить команды из таблицы ниже. Результат выполнения зависит от названия, номера версии и платформы, для которой была выполнена сборка.
Действие | Команда | Тип значения | Примеры выполнения команды |
---|---|---|---|
Название продукта | SELECT version(); | Строковое значение | 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 версии | SHOW server_version; | Строковое значение | {postgres_version} |
SHOW server_version_num; | Числовое значение | 110007 | |
Номер Pangolin версии | SHOW server_se_version; | Строковое значение | {version} |
SELECT product_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 | standalone | 25 | Минуты |
cluster | 64 | Минуты | |
c 6.1.8 до 6.4.0 | standalone | 10 | Минуты |
cluster | 23 | Минуты | |
с 6.1.6 до 6.3.1 | standalone | 9 | Минуты |
cluster | 24 | Минуты | |
с 6.4.1 до 6.4.3 | standalone | 11 | Минуты |
cluster | 32 | Минуты |
Выбор способа обновления
- Ручное обновление по инструкции выполняется на конечных узлах кластера СУБД. Стоит учитывать, что при ручном обновлении потребуется множество самостоятельных действий по проверке готовности к обновлению, а также созданию резервной копии. Ручное обновление дает возможность самостоятельно адаптировать СУБД под индивидуальные условия и требования к процессу обновления.
- Автоматизированное обновление предоставляет быстрый и удобный процесс за счет использования Ansible-скриптов. С помощью инструмента Pangolin Installer процесс обновления СУБД Pangolin становится более простым и интуитивно понятным, а вариант использования Ansible плейбука будет удобен для контроля над процессом. Автоматизированное обновление следует запускать на отдельном хосте не входящем в кластер СУБД Pangolin.
Далее представлена небольшая сравнительная таблица:
Ручное обновление | Автоматизированное обновление | |
---|---|---|
Требуемые действия | Максимальные | Минимальные |
Вероятность ошибок, обусловленных человеческим фактором | Высокий риск | Риск отсутствует |
Скорость установки | Длительная | Быстрая |
Ручная работа на сервере экземпляра СУБД | Да (по SSH) | Нет |