Перевод файловой базы данных 1С:Предприятие на клиент-серверный режим работы — это важнейший шаг на пути к повышению стабильности, безопасности и производительности системы. При росте базы данных свыше 4–6 ГБ или при увеличении числа одновременно работающих пользователей файловый вариант начинает давать сбои, появляются частые блокировки данных и критические ошибки. Исторически стандартным выбором СУБД для продуктов 1С являлся Microsoft SQL Server. Однако в современных реалиях его высокая стоимость и сложность лицензирования заставляют системных администраторов искать более доступные альтернативы. Самой популярной и проверенной временем заменой выступает СУБД PostgreSQL.
В этой статье мы подробно разберем, какую именно сборку PostgreSQL выбрать для работы с 1С, почему стандартная «ванильная» версия СУБД не подойдет, как правильно подобрать оборудование и какие базовые настройки конфигурационного файла необходимо выполнить для быстрой работы базы данных.
У начинающих администраторов часто возникает соблазн скачать стандартный дистрибутив PostgreSQL с официального сайта сообщества (так называемую «ванильную» сборку) и развернуть базу данных на ней. Действительно, на первый взгляд СУБД может успешно установиться, а база 1С даже позволит выполнить первичный импорт данных. Однако делать это для рабочих баз категорически запрещено.
Платформа 1С:Предприятие имеет уникальную архитектуру взаимодействия с реляционными базами данных. Она использует специфические типы данных, механизмы блокировок, экранирование символов, сортировки и сложные конструкции временных таблиц в запросах. Если запустить рабочую базу на стандартной СУБД без специализированных патчей, вы неизбежно столкнетесь со следующими критическими проблемами:
Для стабильной работы необходимы специализированные сборки СУБД, в которые интегрирован набор патчей от компании «1С».
На сегодняшний день на рынке СУБД для СНГ выделяются два основных легитимных варианта сборки PostgreSQL, адаптированных для работы с 1С:
1. Сборка PostgreSQL от самой фирмы «1С».
Данный дистрибутив распространяется непосредственно разработчиком платформы через портал ИТС. Плюс этой сборки в том, что она гарантированно протестирована специалистами 1С на совместимость со всеми версиями платформы. Однако для доступа к скачиванию требуется действующий договор сопровождения (ИТС Проф). Если у вас нет активной подписки, легально скачать готовую сборку не получится.
2. Сборка Postgres Pro 1C от компании Postgres Professional.
Это наиболее популярный, надежный и рекомендуемый выбор в сообществе администраторов 1С. Компания Postgres Professional является российским разработчиком и вносит огромный вклад в развитие ядра PostgreSQL. Они выпускают специализированные бесплатные и коммерческие сборки для 1С.
Бесплатная редакция Postgres Pro Standard 1C доступна для свободного скачивания с официального сайта разработчика. Она содержит все необходимые патчи совместимости с 1С и, что крайне важно, обладает продвинутым инсталлятором, который умеет автоматически настраивать параметры СУБД под аппаратные ресурсы вашего сервера в процессе установки.
Рассмотрим важный аспект архитектуры СУБД. Исторически сложилось так, что PostgreSQL разрабатывался под Unix-подобные операционные системы. В Linux на каждое новое клиентское подключение операционная система порождает отдельный изолированный процесс, что работает чрезвычайно быстро благодаря эффективной работе с памятью в ядре Linux.
В Windows аналогичная эмуляция многопроцессной архитектуры PostgreSQL сопряжена с серьезными накладными расходами операционной системы на управление процессами и разделяемой памятью. На практике это выливается в следующие особенности:
Поэтому настоятельно рекомендуется сделать технологический шаг вперед и развернуть сервер СУБД на дистрибутивах Linux (Debian, Ubuntu Server, Astra Linux или РЕД ОС). Это позволит выжать максимум производительности из имеющегося оборудования.
Утверждение о том, что PostgreSQL «из коробки» настроен на минимальное потребление ресурсов, абсолютно верно. Сразу после стандартной установки СУБД выделяет под свои нужды ничтожно малый объем памяти, чтобы запуститься даже на слабом компьютере. Если запустить базу 1С на ненастроенной СУБД, скорость проведения документов вас сильно разочарует.
Проанализируем ключевые параметры конфигурационного файла postgresql.conf, которые необходимо отредактировать для сервера СУБД:
Определяет объем оперативной памяти, который СУБД использует для кэширования таблиц и индексов. Это один из главных параметров производительности чтения. Для выделенного сервера баз данных рекомендуется устанавливать значение равным 25% от общего объема оперативной памяти сервера. Например, если на сервере установлено 32 ГБ RAM, задайте:
shared_buffers = 8GB
Задает объем памяти, используемый для выполнения внутренних операций сортировки и группировки в рамках одного запроса, прежде чем СУБД начнет сбрасывать временные данные на медленный жесткий диск. Поскольку запросы 1С содержат огромное количество соединений и виртуальных таблиц, стандартного значения (4MB) катастрофически мало. Однако важно помнить: эта память выделяется под каждую операцию сортировки в рамках каждого запроса. При большом количестве активных пользователей слишком высокое значение может исчерпать всю оперативную память. Рекомендуется начинать с диапазона 32MB – 128MB:
work_mem = 64MB
Задает максимальный объем памяти для проведения регламентных сервисных работ (индексация, выполнение операций VACUUM, резервное копирование). Увеличение этого параметра позволяет СУБД быстрее перестраивать индексы, что существенно ускоряет регламентное обслуживание. Рекомендуется выделять до 10% от общей RAM, но не более нескольких гигабайт:
maintenance_work_mem = 2GB
Этот параметр критически важен именно для платформы 1С. В процессе построения сложных отчетов или проведения документов платформа генерирует сотни временных таблиц в рамках одной транзакции. Стандартного значения лимита блокировок СУБД быстро начинает не хватать, что приводит к аварийным отказам в работе пользователей. Для 1С этот параметр необходимо увеличивать как минимум до 256 или 512:
max_locks_per_transaction = 256
Для того чтобы база данных работала стабильно и быстро на протяжении длительного времени, необходимо настроить регулярное выполнение служебных операций:
VACUUM вычищает этот мусор. Рекомендуется использовать встроенный механизм автоматического автовакуума (autovacuum), предварительно настроив его на агрессивную работу для высоконагруженных таблиц.Разберем по шагам последовательность действий для успешного развертывания клиент-серверного режима:
.dt) через меню «Администрирование -> Выгрузить информационную базу».Postgres Pro Standard 1C для выбранной операционной системы. Запустите установку. На этапе настройки укажите объем имеющихся ресурсов сервера, чтобы установщик автоматически прописал оптимальные базовые параметры в конфигурационный файл.postgres)..dt и дождитесь окончания процесса импорта данных.pg_dump), а также еженедельное регламентное обслуживание индексов и сбор статистики.Следуя этим правилам, мы получим надежную, быструю и полностью легальную бесплатную СУБД для работы нашей системы 1С:Предприятие, которая без проблем справится с возрастающими нагрузками.