Дерево страниц

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

Ключ

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

...

Если в процессе обновления возникли проблемы, перейдите в раздел Перезапуск проекта на старой версии БД для отката изменений с версии 1.7 до предыдущей версии 1.6.

...

Подсказка

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

Без форматирования
$ tree -L 2 --dirsfirst
.
├── 1.6
│   ├── eccm
│   ├── identity-provider
│   ├── postgres
│   ├── README.md
│   ├── compose-tools.sh
│   └── technical_support.sh
├── 1.7
│   ├── db-tools
│   ├── eccm
│   ├── identity-provider
│   ├── postgres
│   ├── README.md
│   ├── compose-tools.sh
│   └── technical_support.sh


Якорь
Stop_1_6
Stop_1_6
Остановка старой версии ECCM

Для обновления ECCM с версии 1.6 до версии 1.7 остановите запущенные сервисы средствами docker-compose из каталогов с файлами запуска ECCM 1.6:

Остановка identity-provider
Блок кода
cd  <путь до каталога с файлами запуска ECCM 1.6>/identity-provider
sudo docker-compose down
Остановка eccm
Блок кода
cd  <путь до каталога с файлами запуска ECCM 1.6>/eccm
sudo docker-compose down
Остановка postgres
Блок кода
cd  <путь до каталога с файлами запуска ECCM 1.6>/postgres
sudo docker-compose down

Далее необходимо обновить БД.

Обновление БД

Для удобства обновления БД в состав файлов для запуска 1.7 добавлен скрипт postgres-upgrade.sh (находится в ./db-tools/postgres-upgrade.sh), который выполняет несколько действий:

  1. запуск вспомогательного контейнера с Postgres12.5 для выполнения действий с существующей БД;
  2. вычисление объема данных, хранимых в БД;
  3. проверка свободного места на диске;
  4. создание дампа существующих данных в БД (в зависимости от объема данных и мощности сервера время выполнения может отличаться) в /tmp/eccm-dump/eccm-postgres-upgrade-dump.tar.gz;
  5. создание копии существующего docker-хранилища для Postgres (используемого базой данных) с названием postgres_eccm-postgres-dump;
  6. пересоздание хранилища и контейнера Postgres на новой версии;
  7. загрузка дампа данных, созданного на 4 шаге, в новую БД.

Использование скрипта

Предупреждение
Перед запуском скрипта обновления нужно остановить работу ECCM предыдущей версии (1.6).

Для запуска перейдите в директорию со скриптом. Он должен находиться в ./db-tools относительно корневой директории, в которую распаковали архив с файлами запуска.

...

(n) — исключение данных таблицы с логами из дампа.

Пример выполнения скрипта

Без форматирования
tester@tester:~/eccm-deploy/docker/run/db-tools$ ./postgres-upgrade.sh 

Postgresql docker-compose directory does not provided. Using /home/tester/eccm-deploy/docker/run/postgres.

Error: No such volume: postgres_eccm-postgres-dump
Start Postgresql upgrading: hub.eltex-co.ru/eccm/postgres:12.5 -> hub.eltex-co.ru/eccm/timescaledb:pg14.

Deploying old Postgresql hub.eltex-co.ru/eccm/postgres:12.5...

Creating volume "postgres_eccm-postgres-dump" with default driver
Recreating postgres_postgres_1 ... done
               db_name               | db_size 
-------------------------------------+---------
 postgres                            | 7945 kB
 template1                           | 7801 kB
 template0                           | 7801 kB
 identity_provider_db                | 8265 kB
 identity_provider_access_control_db | 9329 kB
 eccm                                | 14 MB
 zabbix                              | 25 MB
 polemarch-db                        | 11 MB
(8 rows)

Total databases size is 0.12207 GB.

Upgrade requires 0.317382 GB. Disk have 43G free space available at /.

Postgresql data will be recreated. Are you sure? [y/N] y
Create the Zabbix database backup? [Y/n] y
Create the Polemarch log table backup? Be careful! If no, then all task logs will be lost! [Y/n] n
Creating backup file...

Backup file successfully created.

Creating backup volume...

Backup volume successfully created.

Stopping postgres_postgres_1 ... done
Removing postgres_postgres_1 ... done
Removing network postgres_default
Deploying new Postgresql hub.eltex-co.ru/eccm/timescaledb:pg14...

Creating network "postgres_default" with the default driver
Creating volume "postgres_postgres" with default driver
Pulling postgres (hub.eltex-co.ru/eccm/timescaledb:pg14)...
Creating postgres_postgres_1 ... done
Start dump uploading...

Dump successfully uploaded.

Stopping postgres_postgres_1 ... done
Removing postgres_postgres_1 ... done
Removing network postgres_default
Postgresql successfully upgraded.

Dump file stored in /tmp/eccm-dump.
Dump volume saved as postgres_eccm-postgres-dump.


tester@tester:~/eccm-deploy/docker/run/db-tools$ 

Запуск новой версии ECCM

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

sudo ./compose-tools.sh --start <ECCM ADDRESS>

Scroll Pagebreak

Якорь
Restart
Restart
Перезапуск проекта на старой версии БД

На случай непредвиденных проблем, скрипт выполняет полное копирование базы данных в отдельный docker-volume с названием postgres_eccm-postgres-dump. Это позволяет быстро перезапустить проект на предыдущей версии БД и сервисов.

...