Перенос сервера Macroscop на Linux в многосерверной системе🔗
Важно
Все подключения к серверам приложением Macroscop Конфигуратор должно осуществляться пользователем, обладающим полными правами: из группы с ролью администратора (если используется лицензия LS или ST) или старшего администратора (для лицензий Enterprise и ULTRA).
1. Подготовка переноса🔗
На машине с Windows обновите до актуальной версии серверное приложение Macroscop и, при необходимости, его компоненты. Для этого может оказаться полезной следующая информация:
На машине с Linux установите актуальную версию серверного приложения Macroscop и, при необходимости, его компоненты. Информация по установке:
2. Замена сервера в многосерверной системе🔗
Важно
Перед выполнением работ по замене сервера в многосерверной системой ознакомьтесь с особенностями многосерверных систем Macroscop:
Если старый сервер Macroscop под Windows является главным сервером в многосерверной системе, назначьте главным другой сервер.
На время переноса все камеры, привязанные к старому серверу, нужно привязать к другим серверам многосерверной системы, или отключить.
Примечание
При отключении камер все их настройки сохраняются: включая настройки аналитики, интеграций, сценариев автоматизации. После включения камеры все эти настройки восстановятся, даже если камера будет на момент включения привязана к другому серверу.
По окончании переноса эти камеры следует привязать к новому серверу. При этом отключенные камеры нужно будет включить.
Совет
Если будет выполняться перенос архива и баз данных, привязывайте камеры к новому серверу после выполнения этих операций.
3. Перенос архива🔗
Если нужно перенести архив, выполните следующие действия:
Предупреждение
В результате выполнения данной процедуры будет перенесён только видеоархив. Для переноса событий, связанных с видеоархивом, выполните перенос архивных событий.
Подключитесь к старому серверу приложением Macroscop Конфигуратор и запишите параметры настройки каждого из архивных дисков (см. Настройка архива на сервере).
Подключитесь к новому серверу приложением Macroscop Конфигуратор и убедитесь, что новые архивные диски подключены. При этом в параметре Назначение диска выберите такое же значение, что и на старом сервере. Также настройте другие параметры архивного диска. Примените настройки.
Если диски не подключены — отформатируйте и подключите их.
Ссылки на документацию по подготовке и подключению архивных дисков в Linux:
Убедитесь, что на новом сервере в корне каждого архивного диска появился каталог /MacroscopArchive/. После этого на новом сервере в приложении Macroscop Конфигуратор для каждого активного диска измените Назначение диска на Не используется и примените настройки.
Остановите на новом сервере службу сервера видеонаблюдения:
sudo systemctl stop macroscop.service
На старом сервере (под Windows) остановите серверное приложение Macroscop (см. Как остановить сервер Macroscop?).
Перенесите архив. Для этого выполните для каждого архивного диска следующие действия:
6.1.
Скопируйте со старого сервера содержимое папки <имя_диска>:\MacroscopArchive\.
6.2.
На новом сервере на архивном диске удалите все подкаталоги и файлы в каталоге /MacroscopArchive/.
6.3.
Вставьте скопированные в п. 5.1 данные на новый сервер, на архивный диск в каталог /MacroscopArchive/.
Запустите на новом сервере службу сервера видеонаблюдения:
sudo systemctl start macroscop.service
Подключитесь к новому серверу приложением Macroscop Конфигуратор и установите в параметрах каждого архивного диска такое же значение Назначение диска, которое было на старом сервере. Примите настройки.
Подключитесь к новому серверу приложением 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🔗
Узнайте, какие базы данных размещены на старом сервере, выполнив следующие действия:
Нажмите Win + R, введите cmd и откройте командную строку.
Выполните последовательно следующие команды:
cd "C:\Program Files\PostgreSQL\16\bin" psql.exe -h localhost -U postgres -W -l
После запроса Password: введите в командной строке пароль и нажать Enter. Во время ввода в целях безопасности символы пароля на экран не выводятся.
После этого на экран будет выведен список всех баз данных.
Перенос отдельной базы данных🔗
Примечание
На примере базы автономеров с именем platesdblocal.
На примере базы данных platesdblocal.
Остановите серверное приложение Macroscop на старом сервере (см. Как остановить сервер Macroscop?).
Нажмите Win + R, введите cmd, нажмите Ctrl + Shift + Enter. Откроется командная строка в режиме администратора.
Перейдите в папку с PostgreSQL^
cd "C:\Program Files\PostgreSQL\16\bin"
Создайте дампы для каждой базы данных, размещённой на сервере:
pg_dump.exe -h localhost -U postgres -W -Fc -b -v -f C:\temp\platesdblocal.dump platesdblocal
После запроса Password: введите в командной строке пароль и нажать Enter. Во время ввода в целях безопасности символы пароля на экран не выводятся.
В результате в папке C:\tеmp\ будет создан дамп platesdblocal.dump.
Перенесите файл через встроенный в Windows клиент scp. Для этого запустите утилиту в окне терминала (командной строке) Windows. При запуске утилита запросит пароль от Linux-сервера, а не от базы данных.
scp C:\temp\platesdblocal.dump имя_пользователя_linux@IP_LINUX_СЕРВЕРА:/tmp/
Подключитесь к Linux-серверу по SSH:
ssh имя_пользователя_linux@IP_СЕРВЕРА
Проверьте, что файлы дампов скопировались:
ls -lh /tmp/*.dump
Остановите на новом сервере службу сервера видеонаблюдения:
sudo systemctl stop macroscop.service
Получите список всех имеющихся на сервере баз данных и табличных пространств:
sudo -u postgres psql -l sudo -u postgres psql -c “\db”
Создайте недостающие базы (если нужно):
sudo -u postgres createdb platesdblocal
Удалите данные, которые уже записались:
sudo -u postgres psql -d platesdblocal -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
Восстановите данные из дампа:
sudo -u postgres pg_restore -d platesdblocal -Ov /tmp/platesdblocal.dump
Настройте корректные права:
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;"
Запустите на новом сервере службу сервера видеонаблюдения:
sudo systemctl start macroscop.service
Подключитесь приложением Macroscop Клиент к системе с новым Linux-сервером и проверьте наличие импортированных данных.
После успешного завершения импорта можно безопасно удалить временный файл с Linux-сервера командой:
rm /tmp/*.dump