Встановлення PostgreSQL на сервер Ubuntu для використання в 1С

Виходячи з необхідності використання платформи 1С версії 8.3.18, для встановлення використаємо

  • Ubuntu Server 20.04

  • PostgreSQL 12.7-1.1C

Зазвичай, встановлення Ubuntu проблем не викликає, тому почнемо опис з підготовки до встановлення PostgreSQL а потім опишемо сам цей процес.

Встановлення PostgreSQL краще проводити на комп’ютер з наперед проінстальованим сервером SSH та, опціонально, Midnight Commander.

Підготовка середовища до встановлення.

Оновлення системи

Про всяк випадок оновимо систему:


sudo apt-get -y update && apt-get -y upgrade && apt-get -y -f install && apt-get -y autoremove


Перезавантажимо сервер


sudo shutdown -r now

Попередні налаштування

Налаштування локалей

На моїй системі локалі чомусь не захотіли налаштовуватися через sudo, тому довелось перейти в режим суперкористувача (sudo -s). Втім, у Вас може і вийде.


Налаштуємо потрібні локалі з наступним перезавантаженням сервера:


sudo locale-gen en_US.UTF-8 ru_RU.UTF-8 ru_UA.UTF-8 uk_UA.UTF-8

sudo update-locale LANG=uk_UA.UTF8


Переконфігуруємо локалі (перевіримо правильність налаштувань):


sudo dpkg-reconfigure locales


Відобразиться наступне вікно, де ми маємо вибрати потрібні нам локалі, бажано з кодуванням UTF-8:

Наступним кроком виберемо дефолтну (по замовчуванню) локаль:

Нам продемонструють процес генерації локалей:

Після чого можна перезавантажити комп’ютер:


sudo shutdown -r now

Налаштування пам’яті, необхідні для встановлення PostgreSQL

З облікового запису root (sudo -s) зробимо попередні налаштування для ядра лінукс (розмір сегменту розділюваної пам’яті (встановлюю в 512 Мб), в байтах):


echo "kernel.shmmax = 536870912" >> /etc/sysctl.conf

echo "kernel.shmall = 536870912" >> /etc/sysctl.conf

sysctl -p


Встановлення Рекомендованих пакетів PostgreSQL

Встановимо пропоновані 1С пакети “libicu55” та “postgresql-common”:


Однак, оскільки, пакет libicu55 в Ubuntu 20.04 - відсутній, то встановимо його з репозиторію, де він точно є (один рядок), а потім і postgresql-common на додачу

(у мене знову ж таки була якась нестиковка, тому робив через режим суперкористувача):


sudo add-apt-repository -y "deb http://security.ubuntu.com/ubuntu xenial-security main" \

&& apt-get -y update \

&& apt-get -y install libicu55 postgresql-common


При цьому система автоматично встановлює необхідні додаткові пакети:

postgresql-client-common, postgresql-common ssl-cert


Встановлення PostgreSQL

Завантажимо архів Postgre SQL версії 12.7-1.1C з офіційного сайту та розпакуємо його вміст у новостворений каталог /opt/inst/postgre


sudo mkdir /opt/inst/postgre


Далі перейдемо у потрібний каталог


cd /opt/inst/postgre


Та встановимо пакети СУБД в певному порядку з проміжним встановлення пакетів з репозиторію:


sudo apt-get -y install libssl1.0.0

sudo dpkg -i libpq5*.deb

sudo dpkg -i postgresql-client*.deb

sudo apt-get -y install libllvm6.0

sudo dpkg -i postgresql-12*.deb



Успішно.


Конфігурування

Параметри доступу до сервера

Тепер слід налаштувати параметри доступу до баз даних:


Зробимо копію файлу pg_hba.conf:


sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.default


Та відредагуємо його за допомогою зручного текстового редактора.


Зміст редагувань наступний:


рядок виду:

local all postgres peer

замінимо на:

local all postgres trust


Та допишемо наступні рядки:

host all postgres 127.0.0.1/32 md5

host all postgres 192.168.0.199/24 trust

host all hive 192.168.0.199/24 trust


Тут слід зробити зауваження.

На відміну від версії, наприклад 9.6, версія 12 (не знаю, як там у проміжних) вважає за краще, коли ви вказуєте адреси та маски тих комп’ютерів з яких до сервера PostgreSQL буде здійснюватися доступ. У цьому прикладі це рядки з адресою 192.168.0.199/24 і вам, звичайно, треба замінити їх на свої адреси. Якщо у вас буде кілька комп’ютерів, що можуть здійснювати доступ (наприклад сервер 1С та комп’ютер, на котрому встановлено pgAdmin), то для кожного такого комп’ютера слід додати свою пару рядочків.


Налаштування конфігурації сервера


Зробимо копію файлу postgresql.conf:


sudo cp /etc/postgresql/12/main/postgresql.conf /etc/postgresql/12/main/postgresql.conf.default


та відредагуємо його.


Варіант 1. Мій.


listen_addresses = '*'

fsync = off

effective_cache_size = 8192MB #(половина моїх 16ГБ ОЗУ)

work_mem = 16MB


Варіант 2.

Ви можете скористатись “помагатором”, що знаходиться за адресою: https://pgtune.leopard.in.ua/#/



Тепер слід встановити пароль для користувача postgres (замінивши ‘password’ на той, який нам естетично ближче):


sudo psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'password'"



Добре встановити ще права на каталог /var/lib/postgresql щоби вороги не шниряли :)


sudo chown postgres:postgres /var/lib/postgresql/


Перевіримо, чи встановилось:


sudo ls -l /var/lib/


серед виведених рядків має бути щось на зразок:

drwxr-xr-x 4 postgres postgres 4096 2012-05-22 15:39 postgresql


Тепер перезапустимо PostgreSQL:


sudo service postgresql restart


І система готова до роботи.



Встановлення PostgreSQL на сервер Ubuntu для використання в 1С