Запуск Pilot-Server в кластерном режиме

Данная функциональность доступна только для пользователей редакций Pilot-ICE Enterprise и Pilot-BIM. Для получения лицензии обратитесь к поставщику ПО АСКОН.

Предварительно рекомендуем ознакомиться с описанием Архитектуры кластерного режима работы Pilot-Server.

Для начала работы необходимо создать пользователя в PostgreSQL, от имени которого будет осуществляться миграция и подключение к базе данных. Пользователь должен обладать правами на создание базы данных (CREATEDB), входа на сервер (LOGIN) без ограничения количества подключений (CONNECTION LIMIT -1).

Для работы пользователя с базой данных будут необходимы права SELECT, INSERT, UPDATE, DELETE, CONNECT.

Для возможности работы скриптов обновления дополнительно потребуются права CREATE, REFERENCES.

Миграция базы данных

Миграция осуществляется из файлов *.dbp подготовленной базы данных. Если такой базы нет, то можно воспользоваться одной из демонстрационных баз. Для миграции необходимо использовать консольное приложение PostgresMigration, которое поставляется в составе дистрибутива сервера. Это приложение:

  • создаст базу данных в PostgreSQL и скопирует туда данные из *.dbp файлов базы данных;
  • проверит соответствие версии *.dbp-файла базы данных версии сервера. При несоответствии выведет ошибку;
  • создаст конфигурационную базу данных в PostgreSQL для хранения настроек кластера Pilot-Server.

Запуск консольного приложения PostgresMigration:

PostgresMigration [settingsFileName] [pgConnectionString] [redisConnectionString] [configDbName] [adminLogin] [adminPassword]

Перед запуском PostgresMigration необходимо выполнить остановку Pilot-Server, к которому подключены мигрируемые базы *.dbp.

Параметры запуска PostgresMigration:

Параметр Описание
settingsFileName Путь к файлу settings.xml с подключенной к Pilot-Server базой данных *.dbp.
pgConnectionString Строка подключения к PostgreSQL с параметрами:
  Host Адрес сервера PostgreSQL. Можно указывать несколько адресов через запятую.
Username Имя созданного пользователя PostgreSQL. Например, pilotuser.
Password Пароль.
Include Error Detail Получение детализированных описаний ошибок PostgreSQL. Рекомендуемое значение: true.
Pooling Включение пуллинга. Рекомендуемое значение: true.
Connection Lifetime Время жизни подключений к PostgreSQL. Рекомендуемое значение: 0.
Keepalive Поддержание соединения к PostgreSQL. Рекомендуемое значение: 3.
DataBase Имя служебной (default) базы PostgreSQL. Значение по умолчанию - postgres.
redisConnectionString Строка подключения к Redis.
configDbName Имя конфигурационной базы для хранения настроек кластера Pilot-Server. Например, configurationdb.
adminLogin Логин администратора Pilot-Server.
adminPassword Пароль администратора Pilot-Server.

В результате миграции будет создана конфигурационная база данных с именем, указанным в параметре configDbName, к которой будет осуществлять подключение Pilot-Server, и мигрированные базы данных с именами, указанными в settings.xml.

Консольное приложение PostgresMigration выполнит миграцию всех баз данных *.dbp, сохраненных Pilot-Server в settings.xml. Если какие-то базы не требуется мигрировать на PostgreSQL, то их необходимо отсоединить от Pilot-Server до запуска PostgresMigration.

Пример запуска миграции на ОС Linux:

$ cd [путь_к_серверу]

# chmod +x PostgresMigration

# ./PostgresMigration ./settings.xml "Host=onepostgres:5432, twopostgres:5432, threepostgres:5432; Username=pilotuser; Password=password; Include Error Detail=true; Pooling=true; Connection Lifetime=0; Keepalive=3; DataBase=postgres" "myredis:6379, password=password" configurationdb root root

Если после миграции файловые архивы были перенесены в другое расположение, то в конфигурационной базе нужно также указать новый путь.

Запуск Pilot-Server

После того как база данных была мигрирована на PostgreSQL , можно запускать Pilot-Server с параметрами:

Команда и параметры Описание
--pgConnectionString Строка подключения к конфигурационной базе PostgreSQL с параметрами:
  Host Адрес сервера PostgreSQL. Можно указывать несколько адресов.
Username Имя созданного пользователя PostgreSQL. Например, pilotuser.
Password Пароль.
Include Error Detail Получение детализированных описаний ошибок PostgreSQL. Рекомендуемое значение: true.
Pooling Включение пуллинга. Рекомендуемое значение: true.
Connection Lifetime Время жизни подключений к PostgreSQL. Рекомендуемое значение: 0.
Keepalive Поддержание соединения к PostgreSQL. Рекомендуемое значение: 3.
DataBase Имя конфигурационной базы для хранения настроек кластера Pilot-Server Например, configurationdb.
--indexPath Путь для хранения индексов Pilot-Server.
--httpPort HTTP порт.
--httpsPort HTTPS порт.

Пример команды запуска Pilot-Server для работы с PostgreSQL на ОС Linux:

$ cd [путь_к_серверу]

# chmod +x Ascon.Pilot.Daemon

# ./Ascon.Pilot.Daemon --pgConnectionString="Host=mypostgres:5432; Username=pilotuser; Password=password; Include Error Detail=true; Pooling=true; Connection Lifetime=0; Keepalive=3; DataBase=configurationdb" --httpPort="5545" --httpsPort="5548" --indexPath=.\Indexes

Обновление Pilot-Server

Перед обновлением необходимо сделать резервную копию базы банных PostgreSQL.