Service Creatio, enterprise edition
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Развертывание базы данных PostgreSQL

Для установки Creatio вы можете использовать следующие конфигурации баз данных:

удаленная СУБД (рекомендуется);

локальный сервер PostgreSQL.

Если у вас уже настроен сервер PostgreSQL, то шаг I можно пропустить.

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

I. Установка PostgreSQL

Поскольку PostgreSQL является свободной СУБД, то скачать файлы, необходимые для ее установки, можно на официальном сайте продукта.

На заметку

Развертывание Creatio с отказоустойчивостью не тестировалось на PostgreSQL. Подробнее о возможности создания кластеров читайте в документации PostgreSQL.

II. Создание пользователя PostgreSQL

Установленный PostgreSQL Server требует дополнительной настройки, прежде чем вы перейдете к развертыванию Creatio. После первичной установки PostgreSQL Server вам необходимо создать для него пользователя, который сможет подключаться к базе данных через логин и пароль и будет иметь права на создание и обновление баз данных. По умолчанию такого пользователя в PostgreSQL Server нет.

Рекомендуется создать следующих пользователей PostgreSQL:

Пользователь с ролью ”sysadmin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней.

Пользователь с ролью ”public” и ограниченными полномочиями — используется для настройки безопасного подключения Creatio к базе данных через аутентификацию средствами PostgreSQL.

Чтобы создать пользователей PostgreSQL:

1.Откройте командную строку.

2.Перейдите в папку с установочными файлами PostgreSQL:

cd /D "\\path\to\PostgreSQL\folder"

\\path\to\PostgreSQL\folder — путь к папке с установочными файлами PostgreSQL.

3.Перейдите в папку с компонентом Command Line Tools:

cd bin

4.Введите пароль подключения к серверу БД в переменную окружения:

set PGPASSWORD=pg_password

pg_password — пароль пользователя postgres для подключения к серверу PostgreSQL.

5.Запустите оболочку PostgreSQL от имени пользователя postgres:

psql.exe --username postgres

6.Создайте нового пользователя с правами администратора:

CREATE USER pg_sysadmin;

pg_sysadmin — пользователь, которому будут предоставлены права администратора. Нужен для восстановления базы данных и настройки доступа к ней.

7.Настройте для пользователя pg_sysadmin права администратора:

ALTER ROLE pg_sysadmin WITH SUPERUSER;

8.Разрешите pg_sysadmin авторизацию:

ALTER ROLE pg_sysadmin WITH LOGIN;

9.Настройте пароль для pg_sysadmin:

ALTER ROLE pg_sysadmin WITH PASSWORD 'pg_syspassword';

pg_password — пароль пользователя  pg_sysadmin для подключения к серверу PostgreSQL.

10.Создайте нового пользователя с ограниченными правами:

CREATE USER pg_user;

pg_user — пользователь для подключения к серверу PostgreSQL. Используется для подключения Creatio к базе данных.

11.Разрешите pg_user авторизацию:

ALTER ROLE pg_user WITH LOGIN;

12.Настройте пароль для pg_user:

ALTER ROLE pg_user WITH PASSWORD 'pg_password';

pg_password — пароль пользователя pg_user для подключения к серверу PostgreSQL.

13.Выйдите из оболочки PostgreSQL.

\q

III. Восстановление базы данных PostgreSQL

Для восстановления базы данных из резервной копии необходимы утилиты psql.exe и pg_restore.exe. Обе утилиты входят в компонент Command Line Tools PostgreSQL, который устанавливается вместе с PostgreSQL Server. Они находятся в каталоге установленного программного обеспечения PostgreSQL.

Если вы планируете использовать удаленную базу данных PostgreSQL и не устанавливать PostgreSQL Server, то выполните следующие шаги:

1.Скачайте бинарный пакет PostgreSQL. Найти его можно на официальном сайте продукта.

2.При установке пакета выберите также установку компонента Command Line Tools. Установка остальных компонентов опциональна.

Чтобы развернуть базу данных из резервной копии:

1.Откройте командную строку.

2.Перейдите в папку с установочными файлами PostgreSQL:

cd /D "\\path\to\PostgreSQL\folder"

\\path\to\PostgreSQL\folder — путь к папке с установочными файлами PostgreSQL.

3.Перейдите в папку с исполняемыми модулями:

cd bin

4.Установите пароль подключения к серверу БД в переменную окружения:

set PGPASSWORD=pg_syspassword

pg_syspassword — пароль пользователя  pg_sysadmin для подключения к серверу PostgreSQL.

5.Создайте базу данных, в которую будет выполнено восстановление резервной копии.

Для Creatio версии 7.16.3 и выше:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin -–command "CREATE DATABASE pg_dbname_ceatio WITH OWNER = pg_user ENCODING = 'UTF8' CONNECTION LIMIT = -1"

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").

pg_user — пользователь, под логином которого будет осуществляться подключение приложения к БД. Вы можете указать любого пользователя при создании БД, а затем изменить его данные, выполнив действия, описанные в пункте 10 инструкции.

Для Creatio версии 7.16.0 – 7.16.2:

psql.exe --host pg_server_address --port pg_server_port --username=pg_sysadmin -–command "CREATE DATABASE pg_dbname_creatio WITH OWNER = pg_user ENCODING = 'UTF8' CONNECTION LIMIT = -1"

pg_server_address — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора;

pg_user — пользователь с ограниченными правами, который используется для подключения к базе данных Creatio.

6.Если вы используете AWS RDS:

a.Скачайте скрипт ChangeTypesOwner.sql.

b.Замените в скрипте значение “postgres” на актуальное имя пользователя Postgres.

c.Выполните обновленный скрипт ChangeTypesOwner.sql.

7.Восстановите базу данных из резервной копии.

Для Creatio версии 7.16.3 и выше:

pg_restore --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --no-owner --no-privileges --verbose \\path\to\db.backup

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь права на восстановление базы данных (команда "pg_restore").

pg_dbname_creatio — имя БД, в контексте которой происходит выполнение инструкций.

Для Creatio версии 7.16.0 – 7.16.2:

pg_restore.exe --host pg_server_address --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --verbose \\path\to\db.backup

pg_server_address — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname_creatio — имя БД PostgreSQL, в которую будут добавлены таблицы резервной копии. Используйте имя базы данных, указанное в команде "CREATE DATABASE»   на шаге 2.

8.Скачайте файл CreateTypeCastsPostgreSql.sql.

9.Выполните преобразование типов:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --file=\\путь\к\CreateTypeCastsPostgreSql.sql

pg_server_ip — адрес сервера PostgreSQL;

pg_server_port — порт сервера PostgreSQL;

pg_sysadmin — пользователь, которому предоставлены права администратора.

pg_dbname_creatio — имя БД, в контексте которой происходит выполнение инструкций.

\\путь\к\CreateTypeCastsPostgreSql.sql — путь к сохраненному ранее файлу CreateTypeCastsPostgreSql.sql.

10.В Creatio версии 7.16.3 и выше существует возможность при восстановлении из резервной копии заменить владельца БД и ее объектов на пользователя, не являющегося системным администратором (не Superuser). Для этого вам потребуется скрипт ChangeDbObjectsOwner. Скачать скрипт.
Чтобы восстановить БД от имени пользователя, не являющегося администратором:

a.Замените владельца БД:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname –-command "ALTER DATABASE pg_dbname_creatio OWNER TO pg_user"

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").

pg_user — новый владелец БД.

pg_dbname_creatio — имя БД, владелец которой заменяется.

b.Замените владельца объектов БД:

psql.exe --host pg_server_ip --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --file=\\путь\к\ChangeDbObjectsOwner.sql --variable owner=pg_user --variable ON_ERROR_STOP=1

pg_server_ip — адрес сервера PostgreSQL.

pg_server_port — порт сервера PostgreSQL.

pg_sysadmin — пользователь для подключения к серверу PostgreSQL. Пользователь должен являться администратором (Superuser) или иметь права на создание базы данных (команда "CREATE DATABASE").

pg_user — новый владелец БД.

pg_dbname_creatio — имя БД, владелец которой заменяется;

\\путь\к\ChangeDbObjectsOwner.sql — путь к сохраненному ранее файлу ChangeDbObjectsOwner.sql.

Вы можете пропустить этот шаг, и в таком случае владельцем БД и ее объектов останется пользователь, от имени которого запускалась команда pg_restore. Обычно это пользователь postgres.

Смотрите также

Настройка сервера кеширования данных Creatio

Настройка сервера приложения на IIS

Часто задаваемые вопросы по установке Creatio

Был ли данный материал полезен?

Как можно улучшить эту статью?