Для работы с базами данных 1С под ОС Linux используется СУБД PostgreSQL. В данной статье описана установка СУБД PostgreSQL 11.5 под ОС Linux. Проверено на дистрибутивах  RHEL 7/CentOS 7 .

Подготовка к установка PostgreSQL

1. Зайдем на сервер под root

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

На экране отобразиться примерно такой список:

Нас интересует локаль ru_RU.utf8. Если она есть в списке, то установим ее как основную

1. Выполним:

2. Установим в переменную среды LANG нашу локаль для текущей сессии, чтобы скрипт инициализации базы данных PG SQL корректно отработал создание базы данных для 1С:

3. После установки, проверим переменную:

Должны увидеть

Если все в порядке, переходим к установке PostgreSQL.

Установка PostgreSQL

1. Создадим каталог /opt/postgres_11_5

2. Скачаем с сайта фирмы «1С» специальный пропатченный дистрибутив postgresql:

  • postgresql11-1c-11.5-12.el7.x86_64.rpm;
  • postgresql11-1c-contrib-11.5-12.el7.x86_64.rpm;
  • postgresql11-1c-libs-11.5-12.el7.x86_64.rpm;
  • postgresql11-1c-server-11.5-12.el7.x86_64.rpm.

Поместим установочные пакеты postgresql в каталог /opt/postgres_11_5:

Можно использовать для этого программу WinSCP. Как с ней работать тут.

3. Перейдем в каталог /opt/postgres_11_5

4. Установим все пакеты из каталога:

5. Выполним смену пароля пользователю postgres:

6. Если на сервере работает фаервол то настроим правила для сервера PostgreSQL . Нам надо открыть порт 5432 для входящих соединений. Если в системе используется утилита firewalld, то вводим команды:

Если используется утилита iptables, то:

7. Отключим SELinux, позже при желании можно настроить политику доступа для PostgreSQL:

Создание кластера базы данных PostgreSQL

1. Переключаемся на пользователя postgres:

2. Создадим кластер баз данных. Обязательно указываем русскую локаль ru_RU.UTF-8:

В данном случае файлы базы данных будут располагаться в каталоге /var/lib/pgsql/11/data/ — это каталог по умолчанию.

Изменение каталога хранения базы данных

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

1. Авторизоваться под суперпользователем

2. Создать свой каталог для кластера:

3. Настроить к нему необходимые права доступа пользователю postgres.

3. Внесем изменения в конфигурационный файл /var/lib/pgsql/.bash_profile сервера pgsql:

Ищем и меняем значение PGDATA,  на имя нашего каталога, так:

4. Внесем изменения в скрипт запуска pgsql /etc/init.d/postgresql-11:

Аналогично ищем и меняем значение PGDATA:

5. Переключаемся на пользователя postgres:

6. После этого можно создавать кластер в созданном нами каталоге /pgdata/data:

Настройка сетевого доступа

По умолчанию в дистрибутивах PostgreSQL от «1С» в файле /var/lib/pgsql/11/data/postgresql.conf уже есть настройка listen_addresses = ‘*’. Она разрешает удаленное сетевое подключение к СУБД с любых IP-адресов. При необходимости эту настройку можно изменить и указать определенные IP-адреса.

Помимо этого, ограничение на подключение еще настраивается в файле /var/lib/pgsql/11/data/pg_hba.conf. Данный файл содержит строки в таком формате:

Строка с local задает правила для подключений по локальным UNIX-сокетам. Строка с host  — подключения по TCP/IP.

Выполним настройку:

  1. Откроем  его на редактирование:

Например  наш сервер 1С имеет IP-адрес 192.168.0.101. Тогда файл должен содержать только следующие строки, остальные удалить или пометить как комментарий:

Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.

Настройка параметров PostgreSQL

1. Зайдем в командную оболочку psql сервера.

2. Командой ALTER SYSTEM SET установить параметры сервера. Вам необходимо подобрать настройки исходя из параметров своего оборудования. Расчет необходимо осуществить на основании рекомендаций фирмы «1С» изложенных здесь https://its.1c.ru/db/metod8dev/content/5866/hdoc.

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

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

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

1. Запустим командную оболочку psql:

2. Создать служебного пользователя СУБД:

3. Установить пароль служебному пользователю СУБД:

Начиная с версии PG 13, доступна возможность работы  информационных баз 1С:Предприятия от имени пользователя не имеющего прав суперюзера. При этом на момент создания базы данных у служебного пользователя должны быть права суперюзера, и только создания можно «забрать» эти права.

4. Выполним старт сервера PostgreSQL:

Или так:

5. Добавим службу в автозапуск.

После всех настроек можно пробовать создавать базу данных 1С. Удобней всего это сделать из консоли сервера 1С под Windows.