Поддержка 1С
Описание
Функциональность позволяет использовать СУБД Pangolin в качестве СУБД для «Платформы 1С: Предприятие» версии 8.2 и 8.3.
Включение поддержки 1C активирует:
- оптимизации планировщика запросов;
- изменения в работе внутренних алгоритмов СУБД;
- дополнительные расширения.
Настройка
Варианты включения поддержки:
- при установке СУБД Pangolin через скрипты развертывания;
- на уже развернутом экземпляре СУБД Pangolin.
Включение поддержки 1C при установке СУБД Pangolin через скрипты развертывания
Для включения функциональности задайте параметр enable_1c_support
в custom_config_initial.yml.
Подробная информация о custom_config_initial.yml
приведена в разделе «Сценарий установки при помощи запуска Ansible плейбука» руководства по установке.
Конфигурации, разработанные на базе Платформы 1С, могут взаимодействовать с базой данных СУБД Pangolin только при включенном параметре enable_1C_support = true
. В этом режиме система автоматически устанавливает параметры СУБД, необходимые для корректной работы с 1С:
Параметр | Значение |
pg_stat_track_io_timing | off (только если не задан в конфигурации pg_stat_track_io_timing ) |
optimize_for_1c | on |
autovacuum | on |
synchronous_commit | off |
max_locks_per_transaction | 256 |
row_security | false |
temp_buffers | 256MB |
bgwriter_delay | 20ms |
bgwriter_lru_multiplier | 4.0 |
bgwriter_lru_maxpages | 400 |
autovacuum_max_workers | <количество ядер деленное на 2, но не менее 4> |
autovacuum_naptime | 20s |
from_collapse_limit | 8 |
join_collapse_limit | 8 |
geqo | on |
geqo_threshold | 12 |
standard_conforming_strings | off |
escape_string_warning | off |
plantuner.fix_empty_table | on |
online_analyze.enable | off |
online_analyze.table_type | temporary |
online_analyze.verbose | off |
online_analyze.threshol | 50 |
online_analyze.scale_factor | 0.1 |
online_analyze.local_tracking | on |
online_analyze.min_interval | 10000 |
Описание включаемых расширений:
Расширение | Описание |
fasttrun | добавляет функцию fasttruncate для быстрой очистки временных таблиц без транзакционной безопасности |
fulleq | добавляет оператор == для сравнения, который возвращает true при равенстве значений или если оба NULL |
mchar | добавляет операторы для работы с типом данных MCHAR (аналог в MS SQL Server) |
online_analyze | проводит анализ данных после INSERT /UPDATE /DELETE /SELECT INTO |
plantuner | расширение для управления планами запросов |
При установке СУБД Pangolin с поддержкой 1С расширения автоматически активируются (по умолчанию они установлены, но не активны).
Работа баз данных, созданных с включенным параметром optimize_for_1c
, на версиях продукта до 5.3.2 не поддерживается.
Включение поддержки 1С на развернутом экземпляре СУБД Pangolin
Для включения поддержки 1C на работающей базе выполните:
ALTER SYSTEM SET optimize_for_1c = 'on';
SELECT pg_reload_conf();
Чтобы изменить настройку только в текущей сессии (для всех операций в этой сессии, независимо от пользователя) выполните:
SET optimize_for_1c = 'on';
Для установки расширений выполните команды:
CREATE EXTENSION "fasttrun" WITH SCHEMA "public";
CREATE EXTENSION "fulleq" WITH SCHEMA "public";
CREATE EXTENSION "mchar" WITH SCHEMA "public";
Отключение поддержки 1C
Для отключения функциональности выполните команды:
ALTER SYSTEM SET optimize_for_1c = 'off';
SELECT pg_reload_conf();
Отключение оптимизаций и изменений поведения алгоритмов контролируется параметрами конфигурации:
Параметр | Описание | Значения |
optimize_for_1c | Контролирует включение всех оптимизаций и изменений поведения алгоритмов, описанных выше | - on – включает оптимизации и новое поведение. Рекомендуется при совместной работе с 1С - off – отключает оптимизации и новое поведение (значение по умолчанию). Рекомендуется во всех остальных случаях |
enable_self_join_removal | Контролирует оптимизацию JOIN самих на себя по уникальным столбцам. Не влияет на работу при выключенном параметре optimize_for_1c | - off – отключает оптимизацию (значение по умолчанию) - on – включает оптимизацию, но может вызывать некоторые проблемы при выполнении запросов |
Управление
Выдача прав на создание базы данных 1С не суперпользователям
Для создания базы данных 1C без прав суперпользователя необходимо:
-
Включить пользователю опцию
CREATEDB
, которая позволит пользователю создать новую пустую базу данных в СУБД. -
Выдать пользователю права на системную роль
pg_create_plpgsql_language
, которая позволяет выполнять без прав суперпользователя команды инициализации поддержки языкаpl/pgsql
::GRANT pg_create_plpgsql_language TO <имя_пользователя>;
CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C;
CREATE PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler;