Приложение K. Настройка Postgres Pro для решений

Вы можете установить и использовать Postgres Pro с решениями в клиент/серверной модели.

Убедитесь, что в вашей системе установлена русская локаль (например, ru_RU.UTF-8 в системах Linux) и она является активной локалью пользователя, создающего кластер БД. Например, в ОС Debian выполните следующие действия:

sudo dpkg-reconfigure locales # Выберите создаваемую локаль ru_RU.UTF-8
export LANG="ru_RU.UTF-8"
/opt/pgpro/ent-17/bin/pg-setup initdb

Подробности можно найти в соответствующих разделах документации 1C и вашей ОС.

Для оптимальной производительности и стабильности измените следующие параметры в конфигурационном файле postgresql.conf сервера Postgres Pro:

  1. Увеличьте максимально возможное число одновременных подключений к серверу баз данных до 1000. Решения могут открывать большое количество соединений, даже если все они не нужны, так что рекомендуется разрешить на сервере не менее 500 подключений.

    max_connections = 1000
  2. Чтобы временные таблицы работали корректно, измените следующие параметры:

    • Увеличьте размер буфера для временных таблиц:

      temp_buffers = 32MB
    • Увеличьте число допустимых в одной транзакции блокировок таблиц или индексов до 256:

      max_locks_per_transaction = 256

      Обычно решения 1C используют множество временных таблиц. Такие таблицы в большом количестве используются каждым обслуживающим процессом. Закрывая соединение, Postgres Pro пытается удалить все временные таблицы в одной транзакции, при этом транзакция может запрашивать множество блокировок. Если число блокировок превысит значение max_locks_per_transaction, транзакция прервётся и оставит за собой множество потерянных временных таблиц.

  3. Включите экранирование символом обратной косой черты для всех строк и выключите предупреждение об использовании этого символа:

    standard_conforming_strings = off
    escape_string_warning = off
  4. Задайте параметр effective_cache_size равным минимум половине объёма ОЗУ, доступного в системе. Эффективность оптимизатора запросов Postgres Pro зависит от выделенного ему объёма ОЗУ.

  5. Для использования механизма логической репликации модуля dbcopies_decoding задайте для параметра wal_level значение logical.

  6. Оптимизируйте планирование запросов с помощью расширения plantuner:

    • Добавьте plantuner в переменную shared_preload_libraries:

      shared_preload_libraries = 'plantuner'
    • Настройте оптимизатор Postgres Pro для улучшенного планирования запросов с недавно созданными пустыми таблицами:

      plantuner.fix_empty_table = 'on'