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

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

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

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

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

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

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

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

PostgreSQL недоступен в большинстве стандартных репозиториев. Чтобы установить PostgreSQL на Linux:

1.Войдите в систему как администратор (root):

sudo su

2.Добавьте репозиторий PostgreSQL:

echo -e "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list

3.Импортируйте ключ подписи к репозиторию PostgreSQL:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

4.Обновите список пакетов:

apt-get update

5.Установите PostgreSQL

apt-get install -y postgresql-12

6.Выйдите из root-сессии:

exit

На заметку

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

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

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

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

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

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

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

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

1.Войдите как postgres:

sudo su - postgres

2.Откройте оболочку PostgreSQL:

psql.exe

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

CREATE USER pg_sysadmin;

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

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

ALTER ROLE pg_sysadmin WITH SUPERUSER;

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

ALTER ROLE pg_sysadmin WITH LOGIN;

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

ALTER ROLE pg_sysadmin WITH PASSWORD 'pg_syspassword';

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

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

CREATE USER pg_user;

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

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

ALTER ROLE pg_user WITH LOGIN;

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

ALTER ROLE pg_user WITH PASSWORD 'pg_password';

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

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

\q

11.Выйдите из своей сессии:

exit

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

Следующий шаг

Настройка сервера кэширования данных (Redis) на Linux

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

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