Обновление#

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

Содержание#

Подготовка к обновлению#

Для подготовки к процессу установки продукта СУБД Pangolin выполните следующие пункты:

  1. Ознакомьтесь с общей информацией процесса обновления СУБД Pangolin.

  2. Сверьте текущую версию СУБД с поддерживаемыми для обновления и определитесь с типом обновления.

  3. Ознакомьтесь с примерным временем обновления СУБД Pangolin для оценки затрачиваемого времени.

  4. Подберите способ обновления СУБД 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 не выполняется повышение версии расширения 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 разной конфигурации и версии под нагрузкой.

Методика тестирования:

  1. Установка и обновление продуктов версии:

    • 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 - минорное обновление (патч).

  2. Создание тестовой базы данных и генерация тестовых данных (~100ГБ).

  3. Запуск сценария стабильной нагрузки на время обновления. Алгоритм:

    • запускается нагрузка, продолжается 5 минут (100TPS);

    • стартует обновление;

    • после окончания обновления запускается повторная нагрузка на протяжении 10 минут.

  4. Сравнение результатов

Результаты обновления:

Вариант обновления

Тип конфигурации

Время обновления

Размерность

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)

Нет