Сервер Debian 10 и PostgreSQL

PostgreSQL — достаточно современная и популярная СУБД в мире. Её не обошла и фирма 1С, выбрав в качестве одной из поддерживаемых для работы СУБД. По порядку разберем один из вариантов установки и настройки PostgreSQL для 1С, а именно серверный вариант использования на 10 пользователей, на Debian 10.

Эксперимент проводился на железе 2013 года. За основу был взят HP Compaq dc7700, начинка Intel(R) Core(TM)2 CPU 2,13GHz, ОЗУ 8Г, два HDD на 500Г.

Установку Debian 10 amd64 описывать не буду, использовался debian-10.6.0-amd64-netinst. Остановлюсь на некоторых моментах. Жесткие диски были разбиты на 8Г - swap, 342Г - система, 150Г - /baza  при установке в дебиан были объединены в программный Reid1. При установке Debian ставился на определенный IP под доменом. Получился чистый сервер Debian с доступом по SSH. Обновим репозитории Дебиан 10, входим от рута.

su -
nano /etc/apt/sources.list
deb http://ftp.debian.org/debian buster main contrib non-free
deb-src http://ftp.debian.org/debian buster main contrib non-free
deb http://ftp.debian.org/debian buster-updates main contrib non-free
deb-src http://ftp.debian.org/debian buster-updates main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
deb-src http://security.debian.org/ buster/updates main contrib non-free
deb http://ftp.debian.org/debian buster-backports main contrib non-free
apt-get update
apt-get upgrade
apt-get dist-upgrade

Для удобства установил mc.

apt-get install mc

 В Debian 10 для работы PostgreSQL не хватает пакетов

  • libssl1.0.0 - разделяемые библиотеки для реализации протоколов шифрования SSL и TLS
  • libicu55 - компоненты интернационализации для Unicode

Устанавливаем недостающие пакеты, для начала создадим каталог для загрузки пакетов

mkdir /home/dist

Загружаем и устанавливаем недостающие пакеты. Пакеты скачать одним архивом.

cd /home/dist/
wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu55_55.1-7ubuntu0.5_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.4_amd64.deb
apt install libxslt1.1
dpkg -i libssl1.0.0*.deb
dpkg -i libicu55*.deb

Проверяем локаль, должна быть ru_RU.UTF-8

locale

Загружаем и устанавливаем пакеты PostgreSQL. Пакеты можно скачать с 1С, буду устанавливать PostgreSQL 12. Скачать пакеты одним архивом. Качаем архив и ставим на флешку.

Находим флешку в системе

lsblk

Флешка в системе определилась как - sdb1. Создаем каталог монтирования.

mkdir /mnt/usb

Монтируем флешку

mount /deb/sdb1 /mnt/usb

Переходим в каталог /mnt/usb и проверяем, что находится в каталоге через команду dir или ls и далее копируем файлы в созданную папку /home/dist через команду

cp -vr /mnt/usb/* /home/dist/

Разархивируем файлы PostgreSQL и установим их

cd /home/dist
tar -xvf ./postgresql_12.4_1.1C_amd64_deb.tar.bz2

Проверим наличие каталогов в каталоге командой ls . Далее перейдем в папку с пакетами и установим PostgreSQL.

cd /home/dist/postgresql_12.4_1.1C_amd64_deb/
apt install postgresql-common
dpkg -i libpq5*.deb
dpkg -i postgresql-client-12*.deb
dpkg -i postgresql-12*.deb

Во время установки потребуется доустановить недостающие пакеты libllvm6.0 из репозиториев Debian. После установки зафиксируем пакеты от 1С, чтобы избежать их обновления из репозиториев

apt-mark hold libpq5
apt-mark hold postgresql-12
apt-mark hold postgresql-client-12

Очистим Экран

clear

В пакетах от 1С уже настроены все необходимые параметры доступа и все что нам остается - это задать пароль для суперпользователя PostgreSQL - postgres. Перед тем как выполнять следующие действия, убедитесь, что вы находитесь в консоли с правами суперпользователя, если это не так, то выполните

su

Теперь войдем в систему от имени пользователя postgres

su postgres

Откроем консоль PostgreSQL

psql

И установим пароль. Pasword заменим на свой.

ALTER USER postgres WITH PASSWORD 'Pasword';

Для выхода из консоли введите

\q

Проверим статус PostgreSQL

systemctl status postgresql

Остановить, запустить, перезапустить PostgreSQL.

service postgresql stop
service postgresql start
service postgresql restart

Теперь настроим PostgreSQL, прежде его остановив. Редактором откроем файл настроек 

nano /etc/postgresql/12/main/postgresql.conf

Для прослушивания всех интерфейсов, или определенного IP отредактируем параметр

listen_addresses = '*'

Сменим каталог баз данных

data_directory = '/baza/main'

Сохраняем настройки, создаем каталог /baza/main/ и переносим всё из каталога /var/lib/postgres/12/main/. Запускаем PostgreSQL.

service postgresql start

Выходим из PostgreSQL и проверяем работоспособность.

systemctl status postgresql