Начало работы с БД 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.