Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление
printablefalse

Одним из важных нововведений в версии 2.7 в ЕССМ является обновление версии PostgreSQL с 14.10 на 16.11, а также обновление плагинов timescale и timescaledb-tools до версий 2.24.0 и 1.22.0 соответственно.

Подсказка

Сервисы ЕССМ 2.7 совместимы с версией PostgreSQL 14.10 при многохостовой установке или запуске ЕССМ с собственной базой данных.

Обновление до актуальной версии ПО ECCM состоит из следующих этапов:

  1. 0. Создание резервной копии данных;
  2. 1. Скачивание и распаковка архива с новой версией файлов запуска ЕССМ;
  3. 2. Остановка старой версии ECCM;3. Обновление базы данных;
  4. 3. Запуск новой версии ЕССМ.
Примечание

Начиная с версии 2.7, сервисы ЕССМ используют версию PostgreSQL 16.

...

11.

Если обновление до версии 2.8 осуществляется с версии 2.6 (или более ранней), то перед выполнением шагов из данного раздела выполните обновление до версии 2.7 (так как необходимо обновить базу данных PostgreSQL с версии 14.2 до версии 16.11). Подробная инструкция по обновлению БД приведена в разделе Обновление 2.6 -> 2.7.

Создание резервной копии

Подсказка

Для возможности отката к предыдущей версии перед началом обновления рекомендуем создать резервную копию данных. В случае если ECCM установлен на сервере с использованием виртуализации, следует сделать Snapshot системы. В ином случае — создать резервную копию базы данных eccm средствами PostgreSQL. Подробная инструкция по созданию резервной копии базы данных приведена в разделе "Резервное копирование базы данных ЕССМ".

...

Подсказка

Для удобства работы рекомендуется предварительно разместить файлы для запуска новой версии в соседнюю директорию от старой, например:

Без форматирования
$ tree -L 2 --dirsfirst
.
├── 2.7
│  │   ├── db-tools
|   ├── eccm
│   ├── keepalived
│   ├── peeper
│   ├── postgres
│   ├── root-ca-generator
│   ├── witness
│   ├── README.md
│   ├── .env.cluster
│   ├── args-compose-tools.log
│   ├── compose-tools.sh
│   ├── generate-cert.sh
│   └── technical_support.sh
└── 2.8
    ├── db-tools
    ├── eccm
    ├── keepalived
    ├── peeper
    ├── postgres
    ├── root-ca-generator
    ├── witness
    ├── README.md
    ├── .env.cluster
    ├── args-compose-tools.log
    ├── compose-tools.sh
    ├── generate-cert.sh
    └── technical_support.sh


...

Когда ECCM запущен на нескольких хостах (ЕССМ на одном сервере, база данных — на другом), для остановки старой версии ЕССМ и удаления контейнеров выполните на каждом хосте команды, приведенные ниже.

На сервере с ЕССМ:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --stop --delete-containers

На сервере с базой данных:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>/postgres
sudo docker compose stop

Остановка сервисов ЕССМ в отказоустойчивой системе

Когда ЕССМ запущен в отказоустойчивой системе из трех узлов, для остановки старой версии ЕССМ и удаления контейнеров необходимо выполнить следующую команду следующие команды на каждом узле системы: 

cd <путь до каталога с файлами запуска ECCM 2.7> sudo
 
./compose
-
tools.sh
-
-stop

 Далее необходимо произвести остановку каждого узла из кластера баз данных при помощи следующей команды:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.7>
sudo ./compose-tools.sh --stop
Раскрыть
titleОстановка сервисов ЕССМ при запуске в отказоустойчивой системе с БД на отдельном сервере

Когда ЕССМ запущен в отказоустойчивой системе из пяти узлов, для остановки старой версии ЕССМ необходимо произвести сначала остановку каждого узла из кластера приложений при помощи следующей команды:

Блок кода
titleОстановка узлов кластере приложений
Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.7>/postgres
sudo docker compose stop
delete-containers

Также произведите остановку утилиты Keepalived на узлах Master и Slave при помощи следующей команды:

Блок кода
sudo systemctl stop keepalived

Обновление базы данных

Для удобства обновления БД в состав файлов для запуска 2.7 добавлен скрипт postgres-upgrade.sh, расположенный в директории db-tools/ относительно корневой директории системы. Данный скрипт выполняется следующие действия:

  1. Проверяет наличие контейнера с СУБД;
  2. Создает резервную копию данных в отдельный Docker volume ;
  3. Запускает отдельный контейнер с утилитой миграции;
  4. Производит обновление и оптимизацию контейнера с СУБД;

Также для данного скрипта предусмотрены дополнительные возможности:

...

Откат обновления PostgreSQL с версии 16.11 на версию 14.10

Примечание

При использовании данной опции остальные флаги игнорируются.

...

Пропустить этап оптимизации базы данных

Примечание

Использовать только по указанию технической поддержки.

Обновление базы данных при однохостовой установке

Для однохостовой системы после успешной остановки старой версии ЕССМ перейдите в директорию, в которую был распакован архив с новой версией ЕССМ, и выполните команду:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.8>/db-tools
 sudo ./postgres-upgrade.sh

После успешного обновления БД произведите запуск новой версии ЕССМ.

Обновление базы данных при многохостовой установке

Для многохостовой системы после успешной остановки старой версии ЕССМ на сервере с базой данных перейдите в директорию, в которуюбыл распакован архив с новой версией ЕССМ, и выполните команду:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.8>/db-tools
 sudo ./postgres-upgrade.sh

После успешного обновления БД произведите запуск новой версии ЕССМ.

Обновление базы данных в отказоустойчивой системе

Предупреждение

Для обновления ЕССМ в отказоустойчивой системе необходимо предварительно произвести обновление с версии 2.6 на версию не менее 2.6.1 и повторно остановить систему. При отсутствии данного шага обновление отказоустойчивой системы невозможно.

Раскрыть
titleОбновление до версии 2.6.1 для стандартной схемы отказоустойчивой системы

Если предыдущая версия ЕССМ была 2.6.0, первоначально произведите запуск системы на версии 2.6.1. Перед запуском перенесите сертификаты и файл конфигурации отказоустойчивой системы в директорию с новой версией ЕССМ при помощи выполнения следующих команд на каждом хосте:

Блок кода
sudo cp <путь до каталога с файлами запуска ЕССМ 2.6.0>/cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.6.1>/cluster-cert/
sudo cp <путь до каталога с файлами запуска ЕССМ 2.6.0>/.env.cluster <путь до каталога с файлами запуска ЕССМ 2.6.1>

Далее запустите ЕССМ на мастере:

Блок кода
titleMaster: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster master

После того как мастер будет инициализирован и готов к работе, произведите запуск остальных узлов:

Блок кода
titleSlave: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> -- cluster slave
Блок кода
titleWitness: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> -- cluster witness

После успешного запуска ЕССМ на версии 2.6.1, произведите остановку системы при помощи выполнения следующей команды на каждом хосте:

Блок кода
sudo ./compose-tools.sh --stop
Раскрыть
titleОбновление до версии 2.6.1 для отказоустойчивой системы с БД на отдельном сервере

Если предыдущая версия ЕССМ была 2.6.0, первоначально произведите запуск системы на версии 2.6.1. Перед запуском перенесите сертификаты и файл конфигурации отказоустойчивой системы в директорию с новой версией ЕССМ при помощи выполнения следующих команд на каждом хосте:

Блок кода
sudo cp <путь до каталога с файлами запуска ЕССМ 2.6.0>/cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.6.1>/cluster-cert/
sudo cp <путь до каталога с файлами запуска ЕССМ 2.6.0>/.env.cluster <путь до каталога с файлами запуска ЕССМ 2.6.1>

Далее произведите запуск мастера базы данных, предварительно перейдя в директорию postgres/:

Блок кода
titleMaster: eccm/2.6.1/
cd postgres/
 sudo docker compose --env-file=.env ==env-file=../.env.cluster -f docker-compose.cluster.yml up -d

После того как база данных на Master-db будет проинициализирована, перейдите на сервер Slave-db. Перейдите в директорию postgres/ и запустите базу данных:

Блок кода
titleSlave-db: eccm/2.6.1/
cd postgres/
 sudo docker compose --env-file=.env ==env-file=../.env.cluster -f docker-compose.cluster.yml up -d

Во время инициализации Slave-db запустите Witness-узел, перейдя на сервер Witness-node. При помощи bash-скрипта произведите запуск Witness с необходимыми параметрами. Пример запуска с обязательными параметрами:

Блок кода
titleWitness: eccm/2.6.1/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> -- cluster witness

После полной инициализации всего кластера баз данных перейдите на сервер Master-ECCM. При помощи bash-скрипта произведите запуск мастера с необходимыми параметрами. Пример запуска с обязательными параметрами:

Блок кода
titleMaster-app: eccm/2.6.1/
 sudo ./compose-tools.sh -s <MASTER_ECCM_HOST> --cluster master --database-host <MASTER_DB_HOST> --database-port <MASTER_DB_PORT> --backup-database-host <SLAVE_DB_HOST> --backup-database-port <SLAVE_DB_PORT>

Перейдите на сервер Slave-узла. При помощи bash-скрипта произведите запуск Slave с необходимыми параметрами. Пример запуска с обязательными параметрами::

Блок кода
titleSlave-app: eccm/2.6.1/
 sudo ./compose-tools.sh -s <SLAVE_ECCM_HOST> --cluster slave --database-host <MASTER_DB_HOST> --database-port <MASTER_DB_PORT> --backup-database-host <SLAVE_DB_HOST> --backup-database-port <SLAVE_DB_PORT>

После успешного запуска ЕССМ на версии 2.6.1, повторно произведите остановку системы. Для этого сначала остановите кластер приложений при помощи следующей команды:

Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.6>
sudo ./compose-tools.sh --stop

Далее необходимо произвести остановку каждого узла из кластера баз данных при помощи следующей команды:

Блок кода
titleОстановка узлов кластере приложений
cd <путь до каталога с файлами запуска ECCM 2.6>/postgres
sudo docker compose stop

Перенесите сертификаты в директорию с новой версией ЕССМ при помощи выполнения следующей команды на каждом хосте:

Блок кода
sudo cp <путь до каталога с файлами запуска ЕССМ 2.6.1>/cluster-cert/* <путь до каталога с файлами запуска ЕССМ 2.7>/cluster-cert/

В ЕССМ 2.7 было добавлено резервирование сервиса RabbitMQ, поэтому файл конфигурации отказоустойчивой системы претерпел значительные изменения. Повторно заполните .env.cluster в каталоге с файлами запуска ЕССМ 2.8 в соответствии с разделом Запуск ЕССМ в отказоустойчивой системе.

Подсказка

Более подробно ознакомиться с переменными в файле конфигурации отказоустойчивой системы можно в разделе Инструкция по установке и запуску.

...

Предупреждение

Изменение параметра RECONFIGURE_CLUSTER инициализирует принудительное назначение ролей. При отсутствии изменения данного параметра узел slave не будет обновлен.

При использовании стандартной схемы отказоустойчивой системы, перейдите на сервер узла мастера и выполните следующую команду:

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.8>/db-tools
 sudo ./postgres-upgrade.sh

После успешного обновления БД на мастере, произведите запуск новой версии ЕССМ.

Раскрыть
titleОбновление базы данных в отказоустойчивой системе с БД на отдельном сервере

При использовании отказоустойчивой системы с БД на отдельном сервере произведите обновление базы данных на хосте с мастером базы данных при помощи следующей команды:

Блок кода
titleMaster-db: eccm/2.7/
cd db-tools/
 sudo ./postgres-upgrade.sh

Запуск новой версии ЕССМ

Подсказка

Для offline-установки воспользуйтесь инструкцией, приведенной в разделе "Инструкция по установке и запуску".

...

Блок кода
cd <путь до каталога с файлами запуска ECCM 2.8>
sudo ./compose-tools.sh --pull --start <IP ADDRESS>ADDRESS DATABASE> --database-only

На сервере с ЕССМ:

...

Блок кода
titleWitness: eccm/2.8/
sudo ./compose-tools.sh --pull --start <IP ADDRESS> --cluster witness

Восстановите работу утилиты Keepalived на узлах Master и Slave при помощи следующей команды

Блок кода
sudo systemctl start keepalived
Подсказка

Для запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельных серверах воспользуйтесь инструкцией в разделе Запуск ЕССМ в отказоустойчивой системе.

...

.