Начало работы с БД PostreSQL

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

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

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

Пример:

CREATE ROLE pilotuser WITH

NOSUPERUSER

CREATEDB

NOCREATEROLE

NOINHERIT

LOGIN

NOREPLICATION

NOBYPASSRLS

CONNECTION LIMIT -1;

ALTER USER pilotuser PASSWORD 'password';

Миграция базы данных для кластерного режима работы Pilot-Server

Миграция осуществляется из файлов *.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

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

  • создаст базу данных в PostgreSQL и скопирует туда данные из *.dbp файлов базы данных;
  • проверит соответствие версии *.dbp-файла базы данных версии сервера.

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

PostgresMigration [settingsFileName] [pgConnectionString] "" ""

Перед запуском 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.
"" "" Два зарезервированных параметра.
Консольное приложение PostgresMigration выполнит миграцию всех баз данных *.dbp, сохраненных Pilot-Server в settings.xml. Если какие-то базы не требуется мигрировать на PostgreSQL, то их необходимо отсоединить от Pilot-Server до запуска PostgresMigration.

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

$ cd /opt/pilot-server

# chmod +x PostgresMigration

# ./PostgresMigration ./settings.xml "Host=10.1.5.105:5432; Username=pilotuser; Password=password; Include Error Detail=true; Pooling=true; Connection Lifetime=0; Keepalive=3; DataBase=postgres" "" ""

Где:

/opt/pilot-server — путь к Pilot-Server,

10.1.5.105:5432 — адрес и порт, на котором работает PostrgeSQL,

pilotuser и password — имя и пароль пользователя PostgreSQL.