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