Передача сведений ГИСОГД (Diamond) между отдельными системами#

Функционал предназначен для передачи сведений из схемы проекта муниципальной системы в аналогичную схему проекта региональной системы.

Необходимость передачи сведений из муниципальной системы в региональную обоснована тем, что:

  1. Отправка документов ГИСОГД в ГИСОГД РФ осуществляется только из региональных систем.

  2. Мониторинг качества данных (Nephrite) использует данные ГИСОГД для аналитики.

  3. Пользователям региональной системы необходим доступ к актуальным сведениям, размещенным в муниципальной системе.

Сервис необходимо установить только на региональную систему. Установка сервиса происходит вместе с ГИСОГД (Diamond). Если отсутствует потребность в сервисе по передаче сведений, то достаточно удалить или не заполнять переменные в vars.yml, если установка производится посредством Ansible.

Передача сведений между системами осуществляется с помощью утилит pg_dump и pg_restore.

Подробнее об установке можно прочитать в пунктах Ручная установка и Установка Ansible.

Для корректной работы ГИСОГД необходимо настроить сервис репликации на перенос сведений ГИСОГД между основными приложениями (Geometa).

  1. Сценарий работы сервиса

  2. Ручная установка

  3. Установка Ansible

  4. Настройка env файла передачи сведений ГИСОГД

  5. Проверка работы сервиса

Сценарий работы сервиса#

Примечание

Процесс переноса данных запускается по заранее настроенному расписанию.

Процесс работы сервиса:

  1. Формирование дампа схемы проекта в системе МО посредством утилиты pg_dump;

  2. Смена названия схемы проекта в сформированном дампе на временное (temp_СХЕМА);

  3. Восстановление копии схемы проекта из дампа, сформированного ранее посредством утилиты pg_restore;

  4. Смена названия существующей схемы проекта в системе региона на временное (old_СХЕМА);

  5. Смена названия, восстановленной на 3 шаге схемы, на наименование существующей схемы;

  6. Удаление «старой» схемы (old_СХЕМА) проекта из 4 шага.

Ручная установка#

Чтобы выполнить ручную установку функционала:

  1. Скачайте артефакты;

  2. Разархивируйте артефакты и разместите на сервере файлы:

  • docker-compose.schemacopy.yml;

  • .env_replic;

  • diamond-foreignschemacopy.tar*.

  1. Откройте консоль сервера и перейдите к артефактам репликации. Пример команды: cd /opt/Diamond/.

  2. Настройте переменные в конфигурационном файле .env_replic.

  3. Импортируйте образ с помощью команды

docker load -i diamond-foreignschemacopy.tar
  1. Выполните команду:

docker-compose -f docker-compose.schemacopy.yml up -d
  1. Удостоверьтесь, что репликация заработала. ССЫЛКА

Установка Ansible#

  1. Добавьте в файл 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:

../../../_images/cron.png

gvDIAMOND_REPLICA_SRC_DB_CONNECTION_STRING - подключение к БД Diamond источника;

  1. Запустите установку 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=

Проверка работы сервиса#

Проверить работу сервиса можно на стороне сервера, на стороне приложения ГИСОГД и на стороне базы данных.

Чтобы проверить работу сервиса на стороне сервера:

  1. Откройте консоль сервера приемника.

  2. Перейдите в каталог, где расположены артефакты ГИСОГД.

  3. Выполните команду:

docker-compose -f docker-compose.schemacopy.yml logs -f foreignschemacopy

Чтобы проверить работу сервиса на стороне приложения ГИСОГД, откройте UI ГИСОГД, выберите нужный проект и проверьте документы.

Чтобы проверить работу сервиса на стороне базы данных, откройте СУБД, далле нужную базу данных и схему нужного проекта, затем проверьте данные.