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

Обновление

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

Содержание

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

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

  1. Ознакомьтесь с общей информацией процесса обновления СУБД Pangolin.
  2. Сверьте текущую версию СУБД с поддерживаемыми для обновления и определитесь с типом обновления.
  3. Ознакомьтесь с примерным временем обновления СУБД Pangolin для оценки затрачиваемого времени.
  4. Подберите способ обновления СУБД 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.x5.x.x< 2.4.0-Обновление невозможно
4.x.x5.5.latest2.4.02.4.0В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb
5.2.x - 5.5.latest-15.5.latest2.4.22.4.2В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb
5.5.latest5.5.latest2.4.02.14Обновление timescaledb в рамках одной версии Pangolin
5.5.latest5.5.latest2.4.22.14Обновление timescaledb в рамках одной версии Pangolin
5.5.latest6.latest2.142.14В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb. Обновление с 5.x.x до 6.x.x допустимо только при версии timescaledb 2.14
6.1.x6.latest2.112.11В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb
6.latest6.latest2.112.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.0standalone25Минуты
cluster64Минуты
c 6.1.8 до 6.4.0standalone10Минуты
cluster23Минуты
с 6.1.6 до 6.3.1standalone9Минуты
cluster24Минуты
с 6.4.1 до 6.4.3standalone11Минуты
cluster32Минуты

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

  • Ручное обновление по инструкции выполняется на конечных узлах кластера СУБД. Стоит учитывать, что при ручном обновлении потребуется множество самостоятельных действий по проверке готовности к обновлению, а также созданию резервной копии. Ручное обновление дает возможность самостоятельно адаптировать СУБД под индивидуальные условия и требования к процессу обновления.
  • Автоматизированное обновление предоставляет быстрый и удобный процесс за счет использования Ansible-скриптов. С помощью инструмента Pangolin Installer процесс обновления СУБД Pangolin становится более простым и интуитивно понятным, а вариант использования Ansible плейбука будет удобен для контроля над процессом. Автоматизированное обновление следует запускать на отдельном хосте не входящем в кластер СУБД Pangolin.

Далее представлена небольшая сравнительная таблица:

Ручное обновлениеАвтоматизированное обновление
Требуемые действияМаксимальныеМинимальные
Вероятность ошибок, обусловленных человеческим факторомВысокий рискРиск отсутствует
Скорость установкиДлительнаяБыстрая
Ручная работа на сервере экземпляра СУБДДа (по SSH)Нет