Show/Hide Toolbars

Руководство по тех. обслуживанию

Установка и настройка СУБД PostgreSQL PRO 16

Ссылки Назад Вверх Вперед

warning_icon В данном разделе приведена инструкция для установки Postgres Pro 16+ для версии OS Ubuntu 22.04 LTS

Установка PostgreSQL PRO 16

 

1. Обновляем список пакетов и устанавливаем необходимые зависимости:

sudo apt update

 

sudo apt install -y apt-transport-https ca-certificates curl freetds-common freetds-dev g++ gcc git gnupg gnupg2 gpg libcurl4-openssl-dev libsybdb5 lsb-release make software-properties-common vim wget

2.  Добавляем репозиторий Postgres Pro

curl -o pgpro-repo-add.sh https://repo.postgrespro.ru/pgpro-16/keys/pgpro-repo-add.sh

 

sudo sh pgpro-repo-add.sh

 

sudo apt update

 

3. Устанавливаем пакеты Postgres:

sudo apt install -y postgrespro-std-16

 

sudo apt install -y postgrespro-std-16-dev postgrespro-std-16-client

Настройка сервера PostgreSQL PRO 16

Настройка postgresql.conf

В файле конфигурации '/var/lib/pgpro/std-16/data/postgresql.conf' редактируем параметры:

max_connections/ = 1500

listen_addresses = '*'

log_timezone/// = 'Europe/Moscow'

timezone = 'Europe/Moscow'

Настраиваем доступ к серверу PostgreSQL.

Для этого вносим изменения в файлы конфигурации. Настраиваем доступ к серверу PG. Для этого редактируем файл '/var/lib/pgpro/std-16/data/pg_hba.conf'

Для разрешения соединения только из указанной подсети:

host    all             all             192.168.4.0/24  md5

Для разрешения соединения из любой подсети:

host    all             all             0.0.0.0/0       md5

Настройка локализации

Устанавливаем локаль ru_RU.utf8:

sudo apt install -y language-pack-ru

sudo update-locale LANG=ru_RU.UTF-8

Проверяем командой locale. Должны получить следующее:

LANG=ru_RU.UTF-8

LANGUAGE=

LC_CTYPE="ru_RU.UTF-8"

LC_NUMERIC="ru_RU.UTF-8"

LC_TIME="ru_RU.UTF-8"

LC_COLLATE="ru_RU.UTF-8"

LC_MONETARY="ru_RU.UTF-8"

LC_MESSAGES="ru_RU.UTF-8"

LC_PAPER="ru_RU.UTF-8"

LC_NAME="ru_RU.UTF-8"

LC_ADDRESS="ru_RU.UTF-8"

LC_TELEPHONE="ru_RU.UTF-8"

LC_MEASUREMENT="ru_RU.UTF-8"

LC_IDENTIFICATION="ru_RU.UTF-8"

LC_ALL=  

Настраиваем формат даты и времени. Создаем файл '/etc/freetds/locales.conf' со следующим наполнением:

sudo vim /etc/freetds/locales.conf

 

[default]

 date format = %b %e %Y %I:%M:%S.%z%p

Проверяем командой date. Должны получить дату в следующем формате:

Вт 09 мая 2023 22:16:05 UTC

Перезапуск службы PostgreSQL. Проверка статуса

1. Для перезапуска службы выполним следующую команду:

sudo systemctl restart postgrespro-std-16.service

2. Проверим статус:

sudo systemctl status postgrespro-std-16.service

Настройка расширений

1. Для использования баз данных "Первой Формф" в PostgreSQL должны быть настроены следующие расширения:

http

pg_buffercache

pg_hint_plan

pgcrypto

postgres_fdw

rum

tds_fdw

1. Скачиваем и устанавливаем модуль **rum**:

git clone https://github.com/postgrespro/rum

cd rum

make USE_PGXS=1

sudo make USE_PGXS=1 install

cd

В случае ошибки pg_config not found выполните:

sudo ln -s /opt/pgpro/std-16/bin/pg_config /usr/bin/pg_config

2. Скачиваем с GitHub исходники модуля **tds_fdw**, компилируем и устанавливаем:

git clone https://github.com/tds-fdw/tds_fdw.git

cd tds_fdw

make USE_PGXS=1

sudo make USE_PGXS=1 install

cd

3. Скачиваем с GitHub исходники модуля **pg_hint_plan**, компилируем и устанавливаем:

git clone https://github.com/ossc-db/pg_hint_plan.git

cd pg_hint_plan

git checkout PG16

make

sudo make install

cd

4. Скачиваем с GitHub исходники модуля **http**, компилируем и устанавливаем:

git clone https://github.com/pramsey/pgsql-http.git

cd pgsql-http

make

sudo make install

cd

5. Заходим в терминальный клиент Postgres:

sudo -u postgres psql

6. Активируем расширения:

LOAD 'pg_hint_plan';

CREATE EXTENSION IF NOT EXISTS tds_fdw schema public;

CREATE EXTENSION IF NOT EXISTS http schema public;

CREATE EXTENSION IF NOT EXISTS rum schema public;

CREATE EXTENSION IF NOT EXISTS postgres_fdw schema public;

CREATE EXTENSION IF NOT EXISTS pgcrypto schema public;

CREATE EXTENSION IF NOT EXISTS pg_buffercache schema public;

CREATE EXTENSION IF NOT EXISTS btree_gin;

Создание пользователей и баз данных

1. Создаем пользователей:

create user dbo with superuser createdb createrole inherit login password 'PASSWORD';

create user d10taskuser with inherit login password 'PASSWORD';

create user migrationsdaemon with inherit login password 'PASSWORD';

create user rebus with inherit login password 'PASSWORD';

create user implementer with inherit login password 'PASSWORD';

Вместо PASSWORD пропишите пароли пользователей PostgreSQL.

3. Создаем базы данных d10task и taskfilesdb:

create database d10task

template template0

owner dbo

encoding 'utf8'

lc_collate 'ru_RU.utf8'

lc_ctype   'ru_RU.utf8';

 

create database taskfilesdb

template template0

owner dbo

encoding 'utf8'

lc_collate 'ru_RU.utf8'

lc_ctype   'ru_RU.utf8';

 

GRANT ALL PRIVILEGES ON DATABASE d10task TO d10taskuser;

GRANT ALL PRIVILEGES ON DATABASE taskfilesdb TO d10taskuser;

Выйти из консоли можно командой \q.

4. Создаем схему в базе taskfilesdb:

sudo -u postgres psql -d taskfilesdb

 

create extension if not exists tds_fdw schema public;

create schema if not exists dbo authorization dbo;

create table dbo.UploadFiles

(

 id              int not null  generated by default as identity,

 FileContent     bytea,

 Ext             varchar,

 UserID          int,

 FileName        varchar,

 Compressed      bool  constraint DF_UploadFiles_Compressed default false,

 

   constraint PK_UploadFiles primary key (id)

);

\q

5. Копируем на сервер файл с расширением dump, содержащий структуру и контент базы данных, в определенную папку, например: /src/d10task_hd.dump. Данный файл вам может предоставить техническая поддержка. Выполняем рестор 'pg_restore -d DB_NAME DB_DUMP' в созданную базу:

sudo su — postgres

pg_restore -d d10task /var/lib/pgpro/std-16/data/backup/d10task-template.dump

exit

6. Настраиваем схемы для пользователей в новой базе:

sudo -u postgres psql -d d10task

 

alter role D10TaskUser set search_path = "dbo", "public";

alter role dbo set search_path = "dbo", "public";

alter user MigrationsDaemon set search_path = "dbo", "public";

alter user rebus set search_path = "rebus", "public";

 

grant dbo, rebus  to MigrationsDaemon;

 

grant all on all tables in schema dbo, sys to dbo, MigrationsDaemon;

grant all on all sequences in schema dbo, sys to dbo, MigrationsDaemon;

grant all on all functions in schema dbo, sys to dbo, MigrationsDaemon;

grant all on schema dbo, sys to dbo, MigrationsDaemon;

 

alter default privileges in schema dbo, sys, SignalR grant all on tables to dbo, MigrationsDaemon;

alter default privileges in schema dbo, sys, SignalR grant all on sequences to dbo, MigrationsDaemon;

alter default privileges in schema dbo, sys, SignalR grant all on functions to dbo, MigrationsDaemon;

alter default privileges in schema dbo, sys, SignalR grant all on types to dbo, MigrationsDaemon;

На этом настройка СУБД PostgreSQL PRO 16 завершена.