Обновление#

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

Содержание#

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

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

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

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

  3. Подберите способ обновления СУБД Pangolin.

При возникновении проблем в процессе обновления обратитесь к разделу «Часто встречающиеся проблемы и пути их устранения».

По окончанию процесса обновления рекомендуется ознакомиться с разделом «Чек-лист проверки корректности работы».

Описание#

В СУБД Pangolin предусмотренно два типа обновления:

  • Обновление исполняемых файлов – процесс обновления, в ходе которого достаточно просто заменить старые файлы (исполняемые, конфигурационные, файлы расширений) их новыми версиями, либо обновить версии утилит, входящих в состав дистрибутива. Формат внутреннего хранилища при таких модификациях не изменяется. Данное обновление необходимо проводить, например, при изменении конфигурационных файлов, используемых утилит и расширений или при доработке кода самой БД, когда в формат внутреннего хранилища БД не вносятся никакие изменения, в том числе ни один из критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных» не выполняется. Данный тип включает в себя запуск утилиты pg_inplace_upgrade - это необходимо, если версия, на которую происходит обновление, содержит в себе изменения данных системного каталога, которые необходимо обновить. В старой терминологии для обозначения этого типа обновления использовалось «минорное обновление СУБД».

  • Обновление с переносом данных – процесс обновления более сложный, чем просто замена одних файлов другими. В данном случае процесс дополнительно усложнен необходимостью проведения тестов, проверяющих возможность обновиться, а также миграцией данных, так как при этом типе обновления вносятся изменения в формат внутреннего хранилища БД. Данное обновление необходимо проводить в случае, если выполняется один или несколько критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных». В старой терминологии для обозначения этого типа обновления использовалось «мажорное обновление СУБД».

Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных:

  • изменение мажорной версии оргинального PostgreSQL;

  • изменение состава или структуры системных каталогов;

  • изменение состава или структуры встроенных функций;

  • изменение состава или структуры встроенных представлений;

  • изменение файловой структуры, в том числе алгоритма засекречивания;

  • изменение состава конфигурационных файлов;

  • изменение списка встроенных типов данных.

Таблица поддерживаемых для обновления версий СУБД#

Обновление на версию 7.1.0 доступно только с версии 6.5.2. Для этого используйте тип обновления с переносом данных.

В случае необходимости обновления с более ранней версии необходимо выполнить промежуточный этап обновления до версии 6.5.2. Инструкцию по обновлению на версию 6.5.2 смотрите в документации к дистрибутиву данной версии.

В остальных случаях обновление на актуальную версию (7.1.0) невозможно.

Внимание

Для обновления СУБД с предустановленным расширением timescaledb требуется версия расширения 2.19.3. Произведите обновление версии расширения до необходимой, перед началом процесса обновления СУБД Pangolin.

Варианты сценариев обновления СУБД с предустановленным расширением timescaledb до версии 6.5.2, смотрите в документации к дистрибутиву данной версии.

Как определить версию, установленную на сервере#

Для получения названия и версии продукта серверной части необходимо подключиться к серверу 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}

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

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

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

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

Ручное обновление

Автоматизированное обновление

Требуемые действия

Максимальные

Минимальные

Вероятность ошибок, обусловленных человеческим фактором

Высокий риск

Риск отсутствует

Скорость установки

Длительная

Быстрая

Ручная работа на сервере экземпляра СУБД

Да (по SSH)

Нет