Обновление
Данный раздел рассматривает процесс обновления СУБД Pangolin.
Содержание
- Проверка готовности к обновлению
- Ручное обновление СУБД Pangolin
- Автоматизированное обновление СУБД Pangolin
Подготовка к обновлению
Для подготовки к процессу обновления продукта СУБД Pangolin выполните следующие пункты:
- Ознакомьтесь с общей информацией процесса обновления СУБД Pangolin.
- Сверьте текущую версию СУБД с поддерживаемыми для обновления и определитесь с типом обновления.
- Подберите способ обновления СУБД Pangolin.
При возникновении проблем в процессе обновления обратитесь к разделу «Часто встречающиеся проблемы и пути их устранения».
По окончании процесса обновления рекомендуется ознакомиться с разделом «Чек-лист проверки корректности работы».
Описание
В СУБД Pangolin предусмотренно два типа обновления:
- Обновление исполняемых файлов – процесс обновления, в ходе которого достаточно просто заменить старые файлы (исполняемые, конфигурационные, файлы расширений) их новыми версиями, либо обновить версии утилит, входящих в состав дистрибутива. Формат внутреннего хранилища при таких модификациях не изменяется. Данное обновление необходимо проводить, например, при изменении конфигурационных файлов, используемых утилит и расширений или при доработке кода самой БД, когда в формат внутреннего хранилища БД не вносятся никакие изменения, в том числе ни один из критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных» не выполняется. Данный тип включает в себя запуск утилиты
pangolin-inplace-upgrade- это необходимо, если версия, на которую происходит обновление, содержит в себе изменения данных системного каталога, которые необходимо обновить. В старой терминологии для обозначения этого типа обновления использовалось «минорное обновление СУБД». - Обновление с переносом данных – процесс обновления более сложный, чем просто замена одних файлов другими. В данном случае процесс дополнительно усложнен необходимостью проведения тестов, проверяющих возможность обновиться, а также миграцией данных, так как при этом типе обновления вносятся изменения в формат внутреннего хранилища БД. Данное обновление необходимо проводить в случае, если выполняется один или несколько критериев перечисленных в списке «Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных». В старой терминологии для обозначения этого типа обновления использовалось «мажорное обновление СУБД».
Критерии, определяющие необходимость проведения обновления СУБД Pangolin с переносом данных:
- изменение мажорной версии оригинального PostgreSQL;
- изменение логического или физического формата данных;
- потеря обратной совместимости с предыдущими версиями функциональностей.
Таблица поддерживаемых для обновления версий СУБД
В остальных случаях (не отраженных в таблице) обновление на актуальную версию (6.7.6) невозможно.
Перед обновлением стендов с версией Pangolin 4.x.x необходимо выполнить промежуточный этап обновления до версии 5.5.6. Инструкция по обновлению приведена в документации к продукту версии 5.5.6.
| Конфигурация | Тип обновления | Исходная версия |
|---|---|---|
| с СЗИ | Обновление с переносом данных | 5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.5, 5.5.6 |
| без СЗИ | Обновление с переносом данных | 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, 5.5.6 |
| с СЗИ | Обновление исполняемых файлов | 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.5.1, 6.5.2, 6.6.0, 6.6.1, 6.6.2, 6.6.3, 6.6.4, 6.6.5, 6.7.0, 6.7.1, 6.7.2, 6.7.3, 6.7.4, 6.7.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.5.1, 6.5.2, 6.6.0, 6.6.1, 6.6.2, 6.6.3, 6.6.4, 6.6.5, 6.7.0, 6.7.1, 6.7.2, 6.7.3, 6.7.4, 6.7.5 |
Обозначение поля конфигурации
Тип конфигурации определен следующим образом:
- с СЗИ – включено хотя бы одно из СЗИ (TDE, защита конфигурации, защита данных от привилегированных пользователей);
- без СЗИ – СЗИ отключены.
Обновление стендов с предустановленными расширениями
Обновление стендов с предустановленным расширением timescaledb необходимо производить по специальному сценарию.
Варианты сценариев обновления расширения timescaledb:
| Исходная версия Pangolin | Версия Pangolin после обновления | Исходная версия TimescaleDB | Версия TimescaleDB после обновления | Комментарий |
|---|---|---|---|---|
| 5.4.x - 5.5.3 | 5.5.latest | 2.4.2 | 2.14.2 | Обновление timescaledb в рамках одной базовой версии Pangolin |
| 5.5.4 - 5.5.x | 5.5.latest | 2.14.2 | 2.14.2 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb |
| 6.1.x - 6.1.6 | 6.1.latest | 2.11 | 2.14.2 | Обновление timescaledb в рамках одной базовой версии Pangolin |
| 6.1.7 - 6.1.latest | 6.latest | 2.14.2 | 2.14.2 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb |
| 6.2.x | 6.3.latest | 2.11 | 2.14.2 | Обновление timescaledb в рамках одной базовой версии Pangolin |
| 5.5.latest | 6.latest | 2.14.2 | 2.14.2/2.19.3/2.25.0 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb. Для автоматического повышения версии необходимо в пользовательском конфигурационном файле для параметра timescaledb_update_ver указать значение true |
| 6.4.x | 6.latest | 2.14.2 | 2.14.2/2.19.3/2.25.0 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb. Для автоматического повышения версии необходимо в пользовательском конфигурационном файле для параметра timescaledb_update_ver указать значение true |
| 6.x.latest | 6.latest | 2.14.2/2.19.3 | 2.14.2/2.19.3/2.25.0 | В ходе обновления Pangolin не выполняется повышение версии расширения timescaledb. Для автоматического повышения версии необходимо в пользовательском конфигурационном файле для параметра timescaledb_update_ver указать значение true |
Варианты сценариев обновления СУБД Pangolin:
| Исходная версия Pangolin | Исходная версия TimescaleDB | Процесс обновления |
|---|---|---|
| 5.5.x - 5.5.3 | 2.4.2 | Промежуточное обновление на 5.5.4 |
| 5.5.4 - 5.5.latest | 2.14.2 | Прямое обновление до целевой версии (6.latest) |
| 6.1.х - 6.1.6 | 2.11 | Промежуточное обновление на 6.1.7 и выше или 6.3.0 |
| 6.1.7 - 6.1.x | 2.14.2 | Прямое обновление до целевой версии (6.latest) |
| 6.2.x | 2.11 | Промежуточное обновление на 6.3.0 |
| 6.3.х - 6.latest | 2.14.2/2.19.3/2.25.0 | Прямое обновление до целевой версии (6.latest) |
Обновление стендов с предустановленными сторонними расширениями
При обновлении стендов с предустановленными расширениями PostGIS, pgrouting и pg_background необходимо учитывать следующие требования:
| Наименование расширения | Допустимые версии | Дополнительные требования |
|---|---|---|
PostGIS | 3.1.2, 3.3.4, 3.4.2, 3.5.2, 3.5.3 | Минимально допустимые версии сторонних зависимостей расширения: geos-3.9.*, sfcgal-1.3.*, proj-8.1.*, gdal-3.3.* |
pgrouting | 3.1.2, 3.5.0, 3.6.1 | – |
pg_background | 1.0 | – |
За более подробной информацией обратитесь кразделу «Работа со сторонними расширениями».
Как определить версию, установленную на сервере
Для получения названия и версии продукта серверной части необходимо подключиться к серверу Pangolin и выполнить команды из таблицы ниже. Результат выполнения зависит от названия, номера версии и платформы, для которой была выполнена сборка.
| Действие | Команда | Тип значения | Примеры выполнения команды |
|---|---|---|---|
| Название продукта | SELECT version(); | Строковое значение | PostgreSQL 15.15 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; | Строковое значение | 15.15 |
SHOW server_version_num; | Числовое значение | 110007 | |
| Номер Pangolin версии | SHOW server_se_version; | Строковое значение | 6.7.6 |
SELECT product_version(); | Строковое значение | Platform V Pangolin DB 6.7.6 |
Выбор способа обновления
- Ручное обновление по инструкции выполняется на конечных узлах кластера СУБД. Стоит учитывать, что при ручном обновлении потребуется множество самостоятельных действий по проверке готовности к обновлению, а также созданию резервной копии. Ручное обновление дает возможность самостоятельно адаптировать СУБД под индивидуальные условия и требования к процессу обновления.
- Автоматизированное обновление предоставляет быстрый и удобный процесс за счет использования Ansible-скриптов. С помощью инструмента Pangolin Installer процесс обновления СУБД Pangolin становится более простым и интуитивно понятным, а вариант использования Ansible плейбука будет удобен для контроля над процессом. Автоматизированное обновление следует запускать на отдельном хосте, не входящем в кластер СУБД Pangolin.
Далее представлена небольшая сравнительная таблица:
| Ручное обновление | Автоматизированное обновление | |
|---|---|---|
| Требуемые действия | Максимальные | Минимальные |
| Вероятность ошибок, обусловленных человеческим фактором | Высокий риск | Риск отсутствует |
| Скорость установки | Длительная | Быстрая |
| Ручная работа на сервере экземпляра СУБД | Да (по SSH) | Нет |