Установка PostgreSQL для 1С на Linux

Для работы с базами данных 1С под ОС Linux используется СУБД PostgreSQL. В данной статье описана установка СУБД PostgreSQL 11.5 под ОС Linux. Проверено на дистрибутивах RHEL 7/CentOS 7 .
Подготовка к установка PostgreSQL
1. Зайдем на сервер под root
1 |
sudo su root |
2. Проверим наличие доступных русских локалей в системе:
1 |
locale -a | grep ru_RU |
На экране отобразиться примерно такой список:
1 2 3 4 5 6 7 8 |
ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 ru_UA ru_UA.koi8u ru_UA.utf8 russian |
Нас интересует локаль ru_RU.utf8. Если она есть в списке, то установим ее как основную
1. Выполним:
1 |
localectl set-locale LANG=ru_RU.utf8 |
2. Установим в переменную среды LANG нашу локаль для текущей сессии, чтобы скрипт инициализации базы данных PG SQL корректно отработал создание базы данных для 1С:
1 |
export LANG="ru_RU.UTF-8" |
3. После установки, проверим переменную:
1 |
echo $LANG |
Должны увидеть
1 |
ru_RU.UTF-8 |
Если все в порядке, переходим к установке PostgreSQL.
Установка PostgreSQL
1. Создадим каталог /opt/postgres_11_5
1 |
mkdir /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
1 |
cd /opt/postgres_11_5 |
4. Установим все пакеты из каталога:
1 |
yum localinstall postgresql11* |
5. Выполним смену пароля пользователю postgres:
1 |
passwd postgres |
6. Если на сервере работает фаервол то настроим правила для сервера PostgreSQL . Нам надо открыть порт 5432 для входящих соединений. Если в системе используется утилита firewalld, то вводим команды:
1 2 |
firewall-cmd --permanent --zone=public --add-port=5432/tcp firewall-cmd -reload |
Если используется утилита iptables, то:
1 2 |
iptables -t filter -I INPUT -p tcp --dport 5432 -j ACCEPT service iptables save |
7. Отключим SELinux, позже при желании можно настроить политику доступа для PostgreSQL:
1 |
setenforce 0 |
Создание кластера базы данных PostgreSQL
1. Переключаемся на пользователя postgres:
1 |
su – postgres |
2. Создадим кластер баз данных. Обязательно указываем русскую локаль ru_RU.UTF-8:
1 |
/usr/pgsql-11/bin/initdb --locale=ru_RU.UTF-8 -D /var/lib/pgsql/11/data/ |
В данном случае файлы базы данных будут располагаться в каталоге /var/lib/pgsql/11/data/ — это каталог по умолчанию.
Изменение каталога хранения базы данных
Можно расположить файлы базы данных в любом другом каталоге, для этого, перед тем как инициализировать кластер БД, надо сделать следующие шаги:
1. Авторизоваться под суперпользователем
1 |
sudo su root |
2. Создать свой каталог для кластера:
1 |
mkdir /pgdata/data |
3. Настроить к нему необходимые права доступа пользователю postgres.
1 2 |
chown -R postgres:postgres /pgdata/data chmod -R 700 /pgdata |
3. Внесем изменения в конфигурационный файл /var/lib/pgsql/.bash_profile сервера pgsql:
1 |
vim /var/lib/pgsql/.bash_profile |
Ищем и меняем значение PGDATA, на имя нашего каталога, так:
1 |
PGDATA=/pgdata/data |
4. Внесем изменения в скрипт запуска pgsql /etc/init.d/postgresql-11:
1 |
vim /etc/init.d/postgresql-11 |
Аналогично ищем и меняем значение PGDATA:
1 |
PGDATA=/pgdata/data/ |
5. Переключаемся на пользователя postgres:
1 |
su – postgres |
6. После этого можно создавать кластер в созданном нами каталоге /pgdata/data:
1 |
/usr/pgsql-11/bin/initdb --locale=ru_RU.UTF-8 -D /pgdata/data |
Настройка сетевого доступа
По умолчанию в дистрибутивах PostgreSQL от «1С» в файле /var/lib/pgsql/11/data/postgresql.conf уже есть настройка listen_addresses = ‘*’. Она разрешает удаленное сетевое подключение к СУБД с любых IP-адресов. При необходимости эту настройку можно изменить и указать определенные IP-адреса.
Помимо этого, ограничение на подключение еще настраивается в файле /var/lib/pgsql/11/data/pg_hba.conf. Данный файл содержит строки в таком формате:
1 2 |
local база пользователь метод-аутентификации [параметры-аутентификации] host база пользователь адрес метод-аутентификации [параметры-аутентификации] |
Строка с local задает правила для подключений по локальным UNIX-сокетам. Строка с host — подключения по TCP/IP.
Выполним настройку:
- Откроем его на редактирование:
1 |
vim /var/lib/pgsql/11/data/pg_hba.conf |
Например наш сервер 1С имеет IP-адрес 192.168.0.101. Тогда файл должен содержать только следующие строки, остальные удалить или пометить как комментарий:
1 2 |
local all all trust host all all 192.168.0.101 md5 |
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Настройка параметров PostgreSQL
1. Зайдем в командную оболочку psql сервера.
1 |
psql |
2. Командой ALTER SYSTEM SET установить параметры сервера. Вам необходимо подобрать настройки исходя из параметров своего оборудования. Расчет необходимо осуществить на основании рекомендаций фирмы «1С» изложенных здесь https://its.1c.ru/db/metod8dev/content/5866/hdoc.
Пример установки настроек:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
ALTER SYSTEM SET shared_buffers = '96GB'; ALTER SYSTEM SET effective_cache_size = '288GB'; ALTER SYSTEM SET maintenance_work_mem = '20GB'; ALTER SYSTEM SET wal_buffers = '16MB'; ALTER SYSTEM SET default_statistics_target = 100; ALTER SYSTEM SET random_page_cost = 1.1; ALTER SYSTEM SET effective_io_concurrency = 200; ALTER SYSTEM SET work_mem = '10GB'; ALTER SYSTEM SET max_worker_processes = 44; ALTER SYSTEM SET max_parallel_workers_per_gather = 22; ALTER SYSTEM SET temp_buffers = '265MB'; ALTER SYSTEM SET wal_level = 'replica'; ALTER SYSTEM SET max_replication_slots = '8'; ALTER SYSTEM SET max_wal_senders = '32'; ALTER SYSTEM SET autovaccuum = 'on'; ALTER SYSTEM SET autovaccuum_max_workers = 16; ALTER SYSTEM SET autovacuum_naptime = '20s'; ALTER SYSTEM SET bgwriter_delay = '20ms'; ALTER SYSTEM SET bgwriter_lru_multiplier = 4.0; ALTER SYSTEM SET bgwriter_lru_maxpages = 400; ALTER SYSTEM SET synchronous_commit = 'off'; ALTER SYSTEM SET checkpoint_segments = 256; ALTER SYSTEM SET checkpoint_completion_target = 0.9; ALTER SYSTEM SET min_wal_size = '4GB'; ALTER SYSTEM SET max_wal_size = '8GB'; ALTER SYSTEM SET ssl = 'off'; ALTER SYSTEM SET max_files_per_process = 1000; ALTER SYSTEM SET standard_conforming_strings = 'off'; ALTER SYSTEM SET escape_string_warning = 'off'; ALTER SYSTEM SET max_locks_per_transaction = 256; ALTER SYSTEM SET max_connections = 15000; |
Повторюсь, расчет необходимо выполнить обязательно, так как настройки подобранные для другого оборудования могут привести к значительному снижению производительности вашей СУБД.
Создание пользователя базы данных.
1. Запустим командную оболочку psql:
1 |
psql |
2. Создать служебного пользователя СУБД:
1 |
create user pg1cv8 with superuser; |
3. Установить пароль служебному пользователю СУБД:
1 |
alter user pg1cv8 password 'password'; |
Начиная с версии PG 13, доступна возможность работы информационных баз 1С:Предприятия от имени пользователя не имеющего прав суперюзера. При этом на момент создания базы данных у служебного пользователя должны быть права суперюзера, и только создания можно «забрать» эти права.
4. Выполним старт сервера PostgreSQL:
1 |
/usr/pgsql-11/bin/pg_ctl start |
Или так:
1 |
service postgresql-11 start |
5. Добавим службу в автозапуск.
1 |
service postgresql-11 enabled |
После всех настроек можно пробовать создавать базу данных 1С. Удобней всего это сделать из консоли сервера 1С под Windows.
Еще можно посмотреть
Ошибки на клиенте при работе с сервером 1С на Linux. Часть 2
Разбор наиболее часто встречающихся ошибок при работе с 1С на Linux.
Ошибки публикации базы и веб сервиса на веб сервере 1C+ Apache +Linux.
Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок. Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия). В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux без […]
Установка и настройка хранилища конфигураций 1C на Linux сервере
Хранилище конфигурации 1С:Предприятия 8.3 является инструментом групповой разработки. Настраиваем сервер хранилища на Linux.
Хранение файлов 1С в томах на nfs-шаре Linux
Пошаговая настройка варианта хранения файлов 1С Предприятия во внешнем NFS хранилище на ОС Linux
Отладка на сервере 1С на Linux
Настройка отладки на Linux сервере 1С. Пошаговый процесс настройки tcp и http отладки.
Администрирование серверов 1С на Linux
Привычным для нас инструментом управления кластером серверов 1С является консоль «Администрирование серверов 1С Предприятия» — «Microsoft Management Console». Данная консоль позволяет выполнять все необходимые действия по администрированию кластеров серверов 1С:Предприятия. Но, она имеет один недостаток – её невозможно использовать под ОС Linux. Но не все так плохо. Альтернативными средствами администрирования серверов 1С на Linux являются: […]
Ошибки СУБД. 1С+PostgreSQL+Linux. Часть 1.
Ошибка 1С «Сервер баз данных не обнаружен» При работе с 1С в клиент-серверном варианте могут возникать ошибки, которые напрямую не связаны с 1С:Предприятием, а связаны непосредственно с сервером управления баз данных. Одна из распространенных ошибок — «Сервер баз данных не обнаружен…». Продолжение данного сообщения может быть различным: 1. Could not translate host name «NAME» to […]
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.
- Хранение файлов 1С в томах на nfs-шаре Linux
- Администрирование серверов 1С на Linux