Миграция с 1.4.0 до 1.5.0
Общая информация
Данный документ описывает процесс миграции системы с версии 1.4.0 на версию 1.5.0.
Миграция включает обновление схемы баз данных PostgreSQL и ClickHouse, а также перенос данных.
| Предупреждение |
|---|
Внимание! Перед началом миграции обязательно создайте резервную копию всех данных, как описано в разделе Подготовительные действия. |
Требования к системе
Рекомендуемые ресурсы для успешной миграции (на примере системы с 3000 сотрудников, 2200 пропусков и 300 камер):
- Свободное место на диске: не менее 25 ГБ;
- Свободная оперативная память: не менее 16 ГБ;
- Сервисы: PostgreSQL и ClickHouse должны быть запущены на одном хосте;
- Интернет-соединение: стабильное (для загрузки архива миграции);
- Установленное ПО: clickhouse-client.
Сценарии миграции
| Подсказка |
|---|
Используйте сценарий Миграция на текущем сервере, если обновление выполняется на том же сервере, где уже работает система с версией 1.4.0. |
| Подсказка |
|---|
Используйте сценарий Миграция на новом сервере, если миграция выполняется на новом чистом сервере. |
...
Создание временной директории
Создайте временную папку для резервной копии и файлов миграции в домашней директории пользователя:
| Блок кода |
|---|
| language | bash |
|---|
| title | Создание временной директории |
|---|
| linenumbers | true |
|---|
|
mkdir ~/backup
cd ~/backup |
Резервное копирование конфигурационных файлов
| Подсказка |
|---|
Этот сценарий необходим для сравнения конфигурационных файлов версий 1.5.0 и 1.4.0. |
| Блок кода |
|---|
| language | bash |
|---|
| title | Резервное копирование конфигурационных файлов |
|---|
| linenumbers | true |
|---|
|
sudo cp /opt/evi-*/*.conf .
sudo cp /etc/nginx/sites-available/evi-core-web . |
Резервное копирование базы данных
Перед проведением дампа базы данных необходимо остановить сервисы.
| Блок кода |
|---|
| language | bash |
|---|
| title | Остановка всех сервисов с версией 1.4.1 |
|---|
|
sudo systemctl stop nginx evi-core evi-scud evi-live evi-archive evi-analyzer |
| Блок кода |
|---|
| language | bash |
|---|
| title | Отключение клиентов от базы данных |
|---|
|
echo "SELECT pg_terminate_backend(pid) FROM pg_stat_activity where usename='core'" | sudo -u postgres psql -A -t |
Выполните дамп текущей базы PostgreSQL (версия 1.4.1):
| Блок кода |
|---|
| language | bash |
|---|
| title | Резервное копирование базы данных |
|---|
|
sudo -u postgres pg_dump core > evi-backup.dump |
Для проверки наличия файла evi-backup.dump в домашней директории пользователя в подпапке backup выполните следующие действия:
| Блок кода |
|---|
| language | bash |
|---|
| title | Проверка наличия файла evi-backup.dump |
|---|
|
ls -lh | grep evi-backup.dump
|
| Блок кода |
|---|
| title | Наличие файла в папке backup |
|---|
|
-rw-rw-r-- 1 user user 7.4G Jul 29 14:49 evi-backup.dump |
Далее переходите к шагу Миграция на текущем сервере или Миграция на новом сервере в зависимости от ваших требований.
...
| Подсказка |
|---|
Используйте этот сценарий, если обновление выполняется на том же сервере, где уже работает система. |
Загрузка и распаковка архива миграции
Находясь в папке ~/backup, выполните команды:
| Блок кода |
|---|
| language | bash |
|---|
| title | Загрузка и распаковка архива миграции |
|---|
| linenumbers | true |
|---|
|
wget https://archive.eltex-co.ru/evi-raw/evi-1.5.0/db_migration-1.4.0-1.5.0.zip
unzip db_migration-1.4.0-1.5.0.zip
cd db_migration-1.4.0-1.5.0 |
Удаление платформы EVI 1.4.1
| Блок кода |
|---|
| language | bash |
|---|
| title | Удаление всех сервисов с версией 1.3.1 |
|---|
|
sudo apt purge evi-core-web evi-core evi-scud evi-live evi-archive evi-analyzer nginx |
Подготовка к установке
Выполните необходимые предварительные действия, как описано в разделе Подготовка к установке.
Установка базы данных ClickHouse
Поскольку у вас уже установлена база данных PostgreSQL, следующим шагом является установка ClickHouse: раздел Установка баз данных, пункт База данных ClickHouse.
Запуск скрипта миграции
| Блок кода |
|---|
| language | bash |
|---|
| title | Запуск скрипта миграции |
|---|
|
sudo bash migrate.sh <host> <user> <password> <psql_db_name_from> <psql_db_name_to> <psql_port> <ch_def_user_password> <ch_db_name> |
- host — IP-адрес хоста с PostgreSQL и ClickHouse;
- user — имя пользователя для базы данных (будет создано при необходимости);
- password — пароль пользователя;
- psql_db_name_from — имя PostgreSQL БД, из которой идет миграция;
- psql_db_name_to — имя PostgreSQL БД, в которую будет совершена миграция;
- psql_port — порт PostgreSQL;
- ch_def_user_password — пароль для пользователя ClickHouse;
- ch_db_name — имя базы данных ClickHouse, в которую будет совершена миграция.
| Блок кода |
|---|
| language | bash |
|---|
| title | Пример запуска |
|---|
|
sudo bash migrate.sh localhost core core core core 5432 core core |
После успешного выполнения скрипта миграции в консоли вы увидите сообщение: Restoring DB done <3.
Далее переходите к разделу Установка и настройка сервисов EVI после миграции.
...
| Подсказка |
|---|
Используйте этот сценарий, если миграция выполняется на новом чистом сервере. |
Подготовка к установке
Выполните необходимые предварительные действия, как описано в разделе Подготовка к установке.
Установка баз данных
Установите и настройте PostgreSQL и ClickHouse, как описано в разделе Установка баз данных.
Создание папки backup c резервной копией данных
Создайте резервную копию всех данных, как описано в разделе Подготовительные действия.
Перенос подготовленных файлов
Скопируйте папку backup вместе со всем содержимым с исходного сервера на новый.
Для передачи данных рекомендуется использовать утилиту scp, которая обеспечивает безопасное копирование по SSH.
| Блок кода |
|---|
|
scp -r ~/backup user@remote-server:~ |
- user — имя пользователя нового сервера;
- remote-server — адрес нового сервера.
После переноса перейдите на новом сервере в папку backup в домашней директории:
Создание пользователя в PostgreSQL
| Блок кода |
|---|
| language | bash |
|---|
| title | Создание пользователя в PostgreSQL |
|---|
|
sudo -u postgres psql -c "CREATE USER core; ALTER USER core WITH PASSWORD 'core'; ALTER USER core WITH SUPERUSER;" |
| Подсказка |
|---|
При необходимости измените пароль на более безопасный. В примерах используется пароль и имя пользовател\ по умолчанию. |
Восстановление базы данных из дампа
Загрузить базу данных с версией 1.4.0.
| Блок кода |
|---|
| language | bash |
|---|
| title | Восстановление базы данных из дампа |
|---|
|
sudo -u postgres createdb core
sudo -u postgres psql -d core -f evi-backup.dump |
| Подсказка |
|---|
Убедитесь, что дамп корректно загружен. |
Загрузка и распаковка архива миграции
| Блок кода |
|---|
| language | bash |
|---|
| title | Загрузка и распаковка архива миграции |
|---|
| linenumbers | true |
|---|
|
wget https://archive.eltex-co.ru/evi-raw/evi-1.5.0/db_migration-1.4.0-1.5.0.zip
unzip db_migration-1.4.0-1.5.0.zip
cd db_migration-1.4.0-1.5.0 |
Запуск скрипта миграции
| Блок кода |
|---|
|
sudo bash migrate.sh <host> <user> <password> <psql_db_name_from> <psql_db_name_to> <psql_port> <ch_def_user_password> <ch_db_name> |
- host — IP-адрес хоста с PostgreSQL и ClickHouse;
- user — имя пользователя для базы данных (будет создано при необходимости);
- password — пароль пользователя;
- psql_db_name_from — имя PostgreSQL БД, из которой идет миграция;
- psql_db_name_to — имя PostgreSQL БД, в которую будет совершена миграция;
- psql_port — порт PostgreSQL;
- ch_def_user_password — пароль для пользователя ClickHouse;
- ch_db_name — имя базы данных ClickHouse, в которую будет совершена миграция.
| Блок кода |
|---|
| language | bash |
|---|
| title | Пример запуска |
|---|
|
sudo bash migrate.sh localhost core core core core 5432 core core |
После успешного выполнения скрипта миграции в консоли вы увидите сообщение: Restoring DB done <3.
Далее переходите к разделу Установка и настройка сервисов EVI после миграции.
...
После успешного завершения миграции баз данных необходимо установить сервисы EVI версии 1.5.0.
Установка EVI 1.5.0
Установите и настройте сервисы EVI, как описано в разделе Ручная установка.
| Примечание |
|---|
| title | Обновление контроллеров |
|---|
|
Для версии 1.5.0 необходимо использовать прошивку для контроллеров СКУД: IPA-ER-020-2.3.0_build_52.tar.gz |
Сверка конфигурационных файлов
В версии 1.5.0 внесены изменения в структуру и параметры конфигурационных файлов, включая новые порты по умолчанию и обновлённые секции.
Общие изменения
- Изменены используемые порты сервисов (см. раздел Конфигурирование платформы);
- Добавлены новые параметры конфигурации;
- Устаревшие параметры удалены или заменены.
Особое внимание: evi-live.conf — параметр extern_host
В конфигурационном файле evi-live.conf в секции [global] изменился параметр:
| Блок кода |
|---|
|
[global]
extern_host=127.0.0.1 |
| Примечание |
|---|
Убедитесь, что значение extern_host соответствует внешнему IP-адресу или доменному имени сервера, по которому клиенты подключаются к системе. |
Рекомендации
Сравните конфигурационные файлы: старый (1.4.0) и новый (1.5.0) evi-core.conf, evi-scud.conf, evi-live.conf, evi-archive.conf, evi-analyzer.conf.
Перенесите важные настройки (сертификаты, пути видеоархива), соблюдая новую структуру.
Проверка результата миграции
После завершения миграции выполните следующие действия:
- Убедитесь, что все сервисы запускаются без ошибок;
- Проверьте доступность данных (пользователи, пропуска, события);
- Проверьте лог-файлы сервисов на наличие ошибок подключения к БД.
| Примечание |
|---|
При возникновении ошибок обратитесь в техническую поддержку с логами. |
Ручная установка
| Якорь |
|---|
| manual_installation |
|---|
| manual_installation |
|---|
|
...
Установка баз данных
| Якорь |
|---|
| database_install |
|---|
| database_install |
|---|
|
| Пакет | Описание |
|---|
postgresql-17 | База данных используется в сервисах EVI |
clickhouse-server | База данных используется в сервисахEVI |
clickhouse-client | Клиент для подключения к БД ClickHouse |
libpq5 | Библиотека для взаимодействия сервисов EVI с БД |
База данных Postgresql
| Примечание |
|---|
Минимальная версия postgresql 17. Все сервисы используют 1 базу данных для работы. Рекомендуем размещать базу данных рядом с evi-core и evi-scud. |
...
Минимальная конфигурация необходимая для запуска ядра платформы evi-core и модуля СКУД на одном сервере:
| OS | CPU | RAM | SDD | HDD | LAN |
|---|
| Ubuntu 22.04 | 2 ядра 64-bit x86 | 4 GB | 100 GB | 100 GB | 100 Mb/s |
Установка модуля Ядра
Для установки ядра системы выполните следующую команду:
...
EVI Perimeter — объединение модулей (evi-live, evi-archive, evi-analyzer) видеонаблюдения, предназначенный для получения видеопотоков с камер и сохранения в архив.
| Пакет | Описание |
|---|
evi-live | Модуль для взаимодействия с камерами видеонаблюдения для платформы EVI |
evi-archive | Модуль для записи архивов с камер для платформы EVI |
evi-analyzer | Модуль детектора движения для платформы EVI |
Требования для модуля Видеонаблюдение
...
| Блок кода |
|---|
| language | bash |
|---|
| title | Установка пакетов |
|---|
|
sudo -E dpkg -i evi-live_1.5.*.deb evi-archive_1.45.*.deb evi-analyzer_1.45.*.deb |
| Блок кода |
|---|
| language | bash |
|---|
| title | Если установка завершится сообщением о неразрешенных зависимостях, воспользуйтесь командой |
|---|
|
sudo apt install -f |
...
Для работы модуля требуется дискретная видеокарта. Ниже приведена минимальная конфигурация для запуска:
| OS | GPU | SERIES | VRAM | DRIVER |
|---|
| Ubuntu 22.04 | NVIDIA | Quadro или RTX | 8 GB | 545 |
Пример установленных версий ядра и драйвера
Возможны проблемы установки драйвера из-за ядра Linux, ниже приведены примеры рабочих вариантов:
| OS | Kernel | Driver |
|---|
| Ubuntu 22.04.4 LTS | GNU/Linux 6.5.0-44-generic x86_64 | NVIDIA-SMI 545.29.06 |
| Ubuntu 22.04.4 LTS | GNU/Linux 6.5.0-45-generic x86_64 | NVIDIA-SMI 575.64.05 |
Ручная установка docker и драйвера
...