Приложение I. Настройка Postgres Pro для решений 1С
Вы можете установить и использовать Postgres Pro с решениями 1С в клиент/серверной модели.
Убедитесь, что в вашей системе установлена русская локаль (например, ru_RU.UTF-8
в системах Linux) и она является активной локалью пользователя, создающего кластер БД. Например, в ОС Debian выполните следующие действия:
sudo dpkg-reconfigure locales # Выберите создаваемую локаль ru_RU.UTF-8 export LANG="ru_RU.UTF-8" /opt/pgpro/std-11/bin/pg-setup initdb
Подробности можно найти в соответствующих разделах документации 1C и вашей ОС.
Для оптимальной производительности и стабильности измените следующие параметры в конфигурационном файле postgresql.conf
сервера Postgres Pro:
Увеличьте максимально возможное число одновременных подключений к серверу баз данных до 1000. Решения 1С могут открывать большое количество соединений, даже если все они не нужны, так что рекомендуется разрешить на сервере не менее 500 подключений.
max_connections = 1000
Чтобы временные таблицы работали корректно, измените следующие параметры:
Увеличьте размер буфера для временных таблиц:
temp_buffers = 32MB
Увеличьте число допустимых в одной транзакции блокировок таблиц или индексов до 256:
max_locks_per_transaction = 256
Обычно решения 1C используют множество временных таблиц. Такие таблицы в большом количестве используются каждым обслуживающим процессом. Закрывая соединение, Postgres Pro пытается удалить все временные таблицы в одной транзакции, при этом транзакция может запрашивать множество блокировок. Если число блокировок превысит значение
max_locks_per_transaction
, транзакция прервётся и оставит за собой множество потерянных временных таблиц.
Включите экранирование символом обратной косой черты для всех строк и выключите предупреждение об использовании этого символа:
standard_conforming_strings = off escape_string_warning = off
Задайте параметр
effective_cache_size
равным минимум половине объёма ОЗУ, доступного в системе. Эффективность оптимизатора запросов Postgres Pro зависит от выделенного ему объёма ОЗУ.Оптимизируйте планирование запросов с помощью расширения
plantuner
:Добавьте
plantuner
в переменнуюshared_preload_libraries
:shared_preload_libraries = 'plantuner'
Настройте оптимизатор Postgres Pro для улучшенного планирования запросов с недавно созданными пустыми таблицами:
plantuner.fix_empty_table = 'on'