Перенос сервера Macroscop на Linux в односерверной системе🔗

Важно

Все подключения к серверам приложением Macroscop Конфигуратор должно осуществляться пользователем, обладающим полными правами: из группы с ролью администратора (если используется лицензия LS или ST) или старшего администратора (для лицензий Enterprise и ULTRA).

1. Подготовка переноса🔗

На машине с Windows обновите до актуальной версии серверное приложение Macroscop и, при необходимости, его компоненты. Для этого может оказаться полезной следующая информация:

На машине с Linux установите актуальную версию серверного приложения Macroscop и, при необходимости, его компоненты. Информация по установке:

2. Перенос конфигурации камер🔗

Подключитесь приложением Macroscop Конфигуратор к старому серверу (на Windows) и сохраните конфигурацию камер в файл. Для этого:

  • Перейдите на страницу /config/svg/ico-tab-cams.png Камеры.

  • Выделите Все камеры (верхний узел в иерархическом списке камер).

  • Вызовите контекстное меню и выберите пункт Экспорт конфигурации камер. Задайте в открывшемся диалоговом окне имя и местоположение файла экспорта.

Затем подключитесь приложением Macroscop Конфигуратор к новому серверу (на Linux) и импортируйте конфигурацию камер из файла экспорта. Для этого:

  • Перейдите на страницу /config/svg/ico-tab-cams.png Камеры.

  • Выделите Все камеры (верхний узел в иерархическом списке камер).

  • Вызовите контекстное меню и выберите пункт Импорт конфигурации камер. Выберите в открывшемся диалоговом окне файла экспорта.

  • Примените настройки.

3. Перенос архива🔗

Если нужно перенести архив, выполните следующие действия:

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

В результате выполнения данной процедуры будет перенесён только видеоархив. Для переноса событий, связанных с видеоархивом, выполните перенос архивных событий.

  1. Подключитесь к старому серверу приложением Macroscop Конфигуратор и запишите параметры настройки каждого из архивных дисков (см. Настройка архива на сервере).

  2. Подключитесь к новому серверу приложением Macroscop Конфигуратор и убедитесь, что новые архивные диски подключены. При этом в параметре Назначение диска выберите такое же значение, что и на старом сервере. Также настройте другие параметры архивного диска. Примените настройки.

    Если диски не подключены — отформатируйте и подключите их.

    Ссылки на документацию по подготовке и подключению архивных дисков в Linux:

  3. Убедитесь, что на новом сервере в корне каждого архивного диска появился каталог /MacroscopArchive/. После этого на новом сервере в приложении Macroscop Конфигуратор для каждого активного диска измените Назначение диска на Не используется и примените настройки.

  4. Остановите на новом сервере службу сервера видеонаблюдения:

    sudo systemctl stop macroscop.service
    
  5. На старом сервере (под Windows) остановите серверное приложение Macroscop (см. Как остановить сервер Macroscop?).

  6. Перенесите архив. Для этого выполните для каждого архивного диска следующие действия:

    6.1.

    Скопируйте со старого сервера содержимое папки <имя_диска>:\MacroscopArchive\.

    6.2.

    На новом сервере на архивном диске удалите все подкаталоги и файлы в каталоге /MacroscopArchive/.

    6.3.

    Вставьте скопированные в п. 5.1 данные на новый сервер, на архивный диск в каталог /MacroscopArchive/.

  7. Запустите на новом сервере службу сервера видеонаблюдения:

    sudo systemctl start macroscop.service
    
  8. Подключитесь к новому серверу приложением Macroscop Конфигуратор и установите в параметрах каждого архивного диска такое же значение Назначение диска, которое было на старом сервере. Примите настройки.

  9. Подключитесь к новому серверу приложением Macroscop Клиент и проверьте наличие перенесённого архива.

4. Перенос баз данных🔗

Для хранения данных системы видеонаблюдения Macroscop используется СУБД PostgreSQL 16.

Наименования баз данных🔗

На сервере могут размещаться базы данных со следующими именами:

  • archive_event_xxxxxxx — база архивных событий.

    Здесь xxxxxxx — ID архивного диска. Для каждого диска создаётся собственная база данных.

    Пример:

    На архивном диске в папке MacroscopArchive в файле ArchiveLogicDrive.xml размещён идентификатор этого архивного диска:

    <?xml version="1.0" encoding="utf-8"?>
      <ArchiveLogicDriveConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <ArchiveLogicDriveId>5a5238b9-f1bf-460f-a5f4-b8a3e0cbf89b</ArchiveLogicDriveId>
        ...
        <ArchiveId>43679341-2c8d-4f87-a752-b43efc8b5d60</ArchiveId>
        ...
    

    База данных событий этого диска будет носить имя archive_event_5a5238b9f1bf460fa5f4b8a3e0cbf89b.

  • frxxxxxxx — база лиц. Здесь xxxxxxx зависит от того, какой из модулей используется и какую роль носит база.

  • platesxxxxxxx — база автономеров. Здесь xxxxxxx зависит от того, какой из модулей используется и какую роль носит база.

  • postgres — встроенная база данных, содержащая служебные данные PostgreSQL.

Параметры подключения к PostgreSQL🔗

Перед тем, как переносить базы данных, узнайте пароль, с которым серверное приложение Macroscop получает доступ к PostgreSQL (в примерах ниже на обоих серверах используется одинаковый пароль, но в реальности они могут различаться). Пароль от БД можно посмотреть в файле ArchiveSystem.xml: на старом сервере он размещается в папке C:\ProgramData\MacroscopServerConfigs\, на новом сервере — в каталоге /opt/MacroscopServer/MacroscopServerConfigs/.

<?xml version="1.0" encoding="utf-8"?>
<ArchiveConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ArchiveId>43679341-2c8d-4f87-a752-b43efc8b5d60</ArchiveId>
  ...
  <PostgreSqlConfig>
    <Ip>127.0.0.1</Ip>
    <Port>5432</Port>
    <User>postgres</User>
    <Password>masterkey</Password>
    ...

Список баз данных на сервере Windows🔗

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

  1. Нажмите Win + R, введите cmd и откройте командную строку.

  2. Выполните последовательно следующие команды:

    cd "C:\Program Files\PostgreSQL\16\bin"
    psql.exe -h localhost -U postgres -W -l
    

    После запроса Password: введите в командной строке пароль и нажать Enter. Во время ввода в целях безопасности символы пароля на экран не выводятся.

После этого на экран будет выведен список всех баз данных.

Перенос отдельной базы данных🔗

Примечание

На примере базы автономеров с именем platesdblocal.

На примере базы данных platesdblocal.

  1. Остановите серверное приложение Macroscop на старом сервере (см. Как остановить сервер Macroscop?).

  2. Нажмите Win + R, введите cmd, нажмите Ctrl + Shift + Enter. Откроется командная строка в режиме администратора.

  3. Перейдите в папку с PostgreSQL^

    cd "C:\Program Files\PostgreSQL\16\bin"
    
  4. Создайте дампы для каждой базы данных, размещённой на сервере:

    pg_dump.exe -h localhost -U postgres -W -Fc -b -v -f C:\temp\platesdblocal.dump platesdblocal
    

    После запроса Password: введите в командной строке пароль и нажать Enter. Во время ввода в целях безопасности символы пароля на экран не выводятся.

    В результате в папке C:\tеmp\ будет создан дамп platesdblocal.dump.

  5. Перенесите файл через встроенный в Windows клиент scp. Для этого запустите утилиту в окне терминала (командной строке) Windows. При запуске утилита запросит пароль от Linux-сервера, а не от базы данных.

    scp C:\temp\platesdblocal.dump имя_пользователя_linux@IP_LINUX_СЕРВЕРА:/tmp/
    
  6. Подключитесь к Linux-серверу по SSH:

    ssh имя_пользователя_linux@IP_СЕРВЕРА
    
  7. Проверьте, что файлы дампов скопировались:

    ls -lh /tmp/*.dump
    
  8. Остановите на новом сервере службу сервера видеонаблюдения:

    sudo systemctl stop macroscop.service
    
  9. Получите список всех имеющихся на сервере баз данных и табличных пространств:

    sudo -u postgres psql -l
    sudo -u postgres psql -c “\db”
    
  10. Создайте недостающие базы (если нужно):

    sudo -u postgres createdb platesdblocal
    
  11. Удалите данные, которые уже записались:

    sudo -u postgres psql -d platesdblocal -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
    
  12. Восстановите данные из дампа:

    sudo -u postgres pg_restore -d platesdblocal -Ov /tmp/platesdblocal.dump
    
  13. Настройте корректные права:

    sudo -u postgres psql -d platesdblocal -c "GRANT ALL ON SCHEMA public TO macroscop;"
    sudo -u postgres psql -d platesdblocal -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO macroscop;"
    sudo -u postgres psql -d platesdblocal -c "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO macroscop;"
    
  14. Запустите на новом сервере службу сервера видеонаблюдения:

    sudo systemctl start macroscop.service
    
  15. Подключитесь приложением Macroscop Клиент к системе с новым Linux-сервером и проверьте наличие импортированных данных.

  16. После успешного завершения импорта можно безопасно удалить временный файл с Linux-сервера командой:

    rm /tmp/*.dump