Передача сведений ГИСОГД (Diamond) между отдельными системами#
Функционал предназначен для передачи сведений из схемы проекта муниципальной системы в аналогичную схему проекта региональной системы.
Необходимость передачи сведений из муниципальной системы в региональную обоснована тем, что:
Отправка документов ГИСОГД в ГИСОГД РФ осуществляется только из региональных систем.
Мониторинг качества данных (Nephrite) использует данные ГИСОГД для аналитики.
Пользователям региональной системы необходим доступ к актуальным сведениям, размещенным в муниципальной системе.
Сервис необходимо установить только на региональную систему. Установка сервиса происходит вместе с ГИСОГД (Diamond). Если отсутствует потребность в сервисе по передаче сведений, то достаточно удалить или не заполнять переменные в vars.yml, если установка производится посредством Ansible.
Передача сведений между системами осуществляется с помощью утилит pg_dump и pg_restore.
Подробнее об установке можно прочитать в пунктах Ручная установка и Установка Ansible.
Для корректной работы ГИСОГД необходимо настроить сервис репликации на перенос сведений ГИСОГД между основными приложениями (Geometa).
Сценарий работы сервиса#
Примечание
Процесс переноса данных запускается по заранее настроенному расписанию.
Процесс работы сервиса:
Формирование дампа схемы проекта в системе МО посредством утилиты pg_dump;
Смена названия схемы проекта в сформированном дампе на временное (temp_СХЕМА);
Восстановление копии схемы проекта из дампа, сформированного ранее посредством утилиты pg_restore;
Смена названия существующей схемы проекта в системе региона на временное (old_СХЕМА);
Смена названия, восстановленной на 3 шаге схемы, на наименование существующей схемы;
Удаление «старой» схемы (old_СХЕМА) проекта из 4 шага.
Ручная установка#
Чтобы выполнить ручную установку функционала:
Скачайте артефакты;
Разархивируйте артефакты и разместите на сервере файлы:
docker-compose.schemacopy.yml;
.env_replic;
diamond-foreignschemacopy.tar*.
Откройте консоль сервера и перейдите к артефактам репликации. Пример команды: cd /opt/Diamond/.
Настройте переменные в конфигурационном файле .env_replic.
Импортируйте образ с помощью команды
docker load -i diamond-foreignschemacopy.tar
Выполните команду:
docker-compose -f docker-compose.schemacopy.yml up -d
Удостоверьтесь, что репликация заработала. ССЫЛКА
Установка Ansible#
Добавьте в файл vars.ml переменные и значения к переменным.
gvDIAMOND_SRC_DB_SCHEMA_NAME - псевдоним схемы источника (без префикса gisogd_);
gvDIAMOND_DST_DB_SCHEMA_NAME - псевдоним схемы приемника (без префикса gisogd_).
Важно
Сервис переноса данных не запуститься, если переменные gvDIAMOND_DST_DB_SCHEMA_NAME и gvDIAMOND_SRC_DB_SCHEMA_NAME не будут заполнены.
gvDIAMOND_REPLICA_CRONTAB_SCHEDULE - конфигурация расписания запуска в cron.
Конфигурация расписания cron:
gvDIAMOND_REPLICA_SRC_DB_CONNECTION_STRING - подключение к БД Diamond источника;
Запустите установку Diamond.
Настройка env файла передачи сведений ГИСОГД#
Переменные хранятся в файле .env_replica.
SRC_DB_SCHEMA_NAME - псевдоним схемы источника (без префикса gisogd_);
DST_DB_SCHEMA_NAME - псевдоним схемы приемника (без префикса gisogd_).
Важно
Сервис переноса данных не будет работать, если переменные SRC_DB_SCHEMA_NAME и DST_DB_SCHEMA_NAME не будут заполнены.
Секция конфигурации параметров запуска в cron:
CRON_MINUTES - в какие минуты будет запускаться выполнение задачи;
CRON_HOUR - в какие часы будет запускаться выполнение задачи;
CRON_DAY - в какие дни будет запускаться выполнение задачи;
CRON_MONT - в какие месяца будет запускаться выполнение задачи;
CRON_WEEK_DAY - в какие дни недели будет запускаться выполнение задачи;
Пример:
CRON_MINUTES=0
CRON_HOUR=23
CRON_DAY=*
CRON_WEEK_DAY=0-4
«Число» - обозначает конкретное значение. (Пример: CRON_MINUTES= 15, передача данных будет выполняться ровно в 15-ю минуту часа)
«*» - означает, что передача данных будет выполняться всегда (Пример: CRON_HOUR=*, передача данных будет выполняться каждый час)
«*/число» - означает, что задача будет выполняться с некой периодичностью с момента запуска (Пример: CRON_MINUTES=*/30, передача данных будет выполняться каждые полчаса)
Секция конфигурации подключения к базе данных источника данных репликации состоит из IP, порта, наименование, логина и пароля.
SRC_DB_HOST= ip сервера, где расположена база;
SRC_DB_PORT= порт;
SRC_DB_NAME= наименование базы;
SRC_DB_LOGIN= логин;
SRC_DB_PASSWORD= пароль.
Секция конфигурации подключения к базе данных приемника данных репликации заполняется по аналогии с секцией источника.
DST_DB_HOST=
DST_DB_PORT=
DST_DB_NAME=
DST_DB_LOGIN=
DST_DB_PASSWORD=
Секция конфигурации подключения к базе данных Geometa приемника:
GEOMETA_DB_HOST=
GEOMETA_DB_PORT=
GEOMETA_DB_NAME=
GEOMETA_DB_LOGIN=
GEOMETA_DB_PASSWORD=
Проверка работы сервиса#
Проверить работу сервиса можно на стороне сервера, на стороне приложения ГИСОГД и на стороне базы данных.
Чтобы проверить работу сервиса на стороне сервера:
Откройте консоль сервера приемника.
Перейдите в каталог, где расположены артефакты ГИСОГД.
Выполните команду:
docker-compose -f docker-compose.schemacopy.yml logs -f foreignschemacopy
Чтобы проверить работу сервиса на стороне приложения ГИСОГД, откройте UI ГИСОГД, выберите нужный проект и проверьте документы.
Чтобы проверить работу сервиса на стороне базы данных, откройте СУБД, далле нужную базу данных и схему нужного проекта, затем проверьте данные.