Установка 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. Часть 1
Рассмотрены ошибки при подключении к серверу 1С на Linux. Изложена методика поиска причин и путей их исправления
Установка сервера 1С Предприятие 8.3 на Linux
Пошаговый процесс установки 1С сервера на Linux. Подготовка Linux к установке. Инсталяция дистрибутива 1С сервера. Его настройка и запуск.
НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
Помимо анализа планов и запросов СУБД в технологическом журнале 1С, также бывает полезным анализировать статистику по запросам в pg_profiler. Тем более, что она уже собирается в сгруппированном по запросам виде. Ниже приведем инструкцию по его настройке. 1. Инсталляция и настройка pg_profile. 2. Настройка отображения pg_profile через веб-сервер apache. Инсталляция и настройка pg_profile. 1. Скачаем pg_profile […]
Основы работы в Linux
Основы работы в Linux. Как подключиться к серверу. Как скопировать файлы на сервер. Редактирование конфигурационных файлов.
Установка двух версий сервера 1С на Linux
Пошаговый процесс установки и запуска двух версий сервера 1С на Linux. Полное описание настройки второго экземпляра сервера 1С.
Ошибки сервера 1С на Linux
Описание типичных ошибок которые возникают при запуске службы сервера 1С на Linux и пути их исправления
Публикация 1С на Веб сервере Apache Linux
Пошаговые инструкции по публикация базы и web-сервисов 1С на веб-сервере Apache 2.4 на Linux.
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.
- Хранение файлов 1С в томах на nfs-шаре Linux
- Администрирование серверов 1С на Linux