Запуск 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

Изменение параметров подключения

Изменение логина, пароля и других параметров подключения к PostgreSQL и Redis осуществляется в конфигурационном режиме. Для этого запустите Pilot-Server с параметром --configure="true", как показано на примерах ниже.

После того, как вы получите сообщение об успешном окончании конфигурирования, сервера можно запустить в рабочем режиме без параметра --configure="true".

Вывод Описание
Database parameters successfully configured База данных успешно сконфигурирована.
Incorrect parameters. See documentation for more details Указаны некорректные параметры. Проверьте данные, которые вы указываете.
Invalid database name Указанная база данных не существует. Проверьте имя базы данных, которое вы указываете.

Добавление базы данных PostgreSQL

Для добавления новой базы данных, необходимо запустить Pilot-Server с такими параметрами:

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

# chmod +x Ascon.Pilot.Daemon

# ./Ascon.Pilot.Daemon --configure="true" \

--pgConnectionString="Host=configDbIP:5432; Username=pilotuser; Password=password; DataBase=configurationdb; Include Error Detail=true; Pooling=true; Connection Lifetime=0; keepalive=3"

--dbname="newdatabase" \

--postgres="Host=newDbIp:5432; Username=pilotuser; Password=password; Database=newDB; Include Error Detail=True; Pooling=True; Connection Lifetime=0; Keepalive=3"\

--filearchivepath="/mnt/vol2/FileArchive/44191f9c-c8a4-4689-b38b-474f2aba4465.pilotfa"

Где:

  • --configure="true" — параметр для перевода системы в режим конфигурирования;
  • newdatabase — задайте имя присоединяемой базы данных;
  • --postgres — строка подключения к новой базе данных;
  • --filearchivepath — путь к файловому архиву новой базы данных.

Изменение параметров подключения к базе данных PostgreSQL

Для замены строки подключения к базе данных PostgreSQL, необходимо запустить Pilot-Server с такими параметрами:

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

# chmod +x Ascon.Pilot.Daemon

# ./Ascon.Pilot.Daemon --configure="true" \

--pgConnectionString="Host=configdbIP:5432; Username=pilotuser; Password=password; DataBase=configurationdb; Include Error Detail=true; Pooling=true; Connection Lifetime=0; keepalive=3 "

--dbname="mydatabase" \

--postgres="Host=myDbIp:5432; Username=pilotuser; Password=password; Database=mydatabase; Include Error Detail=True; Pooling=True; Connection Lifetime=0; Keepalive=3"

Где:

  • --configure="true" — параметр для перевода системы в режим конфигурирования;
  • mydatabase — наименование базы данных, для которой меняется подключение к PostgreSQL.
  • --postgres — новая строка подключения к базе данных PostgreSQL. Можно изменить любые параметры, в том числе имя пользователя и пароль.

Изменение пароля к Redis

Для изменения пароля к Redis, необходимо запустить Pilot-Server с такими параметрами:

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

# chmod +x Ascon.Pilot.Daemon

# ./Ascon.Pilot.Daemon --configure="true" \

--pgConnectionString="Host=configdbIP:5432; Username=pilotuser; Password=password; DataBase=configurationdb; Include Error Detail=true; Pooling=true; Connection Lifetime=0; keepalive=3"\

--redis="redisIp:5432, password=redispassword"

Где:

  • --configure="true" — параметр для перевода системы в режим конфигурирования;
  • --redis — строка подключения к Redis с новым паролем.