Администрирование · 12 мин
Как развернуть базу 1С на PostgreSQL
Развёртывание базы 1С на PostgreSQL: установка СУБД, настройка кластера, создание базы через консоль кластера, параметры и типичные ошибки.
PostgreSQL — самая распространённая бесплатная СУБД для клиент-серверного режима работы 1С:Предприятия. Платформа поддерживает PostgreSQL официально, но с важной оговоркой: подходят не любые сборки, а версии из определённого диапазона, причём фирма «1С» публикует собственные адаптированные дистрибутивы. Использование произвольной сборки PostgreSQL с сайта сообщества часто приводит к ошибкам при создании информационной базы и проблемам с производительностью.
Общая схема развёртывания выглядит так: устанавливается сервер PostgreSQL, устанавливается сервер 1С:Предприятия, затем в консоли кластера 1С создаётся информационная база с типом СУБД PostgreSQL — платформа сама формирует базу данных и служебные объекты. Ниже разобран каждый этап с конкретными параметрами и проверками результата.
Материал ориентирован на установку на Linux-сервер как наиболее типичный сценарий для PostgreSQL. Для Windows шаги аналогичны, отличаются команды установки и расположение конфигурационных файлов.
Подготовка: выбор версий и требования к серверу
Первое, что нужно сделать, — сверить версии трёх компонентов: платформы 1С:Предприятия, PostgreSQL и операционной системы. Совместимость указана в системных требованиях платформы на портале 1С. Как правило, для актуальных релизов платформы поддерживается несколько веток PostgreSQL, и «1С» распространяет собственные сборки с патчами, необходимыми для корректной работы (например, с поддержкой нужных механизмов блокировок).
По ресурсам ориентируйтесь на профиль нагрузки, а не на минимальные требования. Для небольшой базы с несколькими пользователями достаточно 8–16 ГБ оперативной памяти, но под рабочую базу с десятками активных сеансов памяти понадобится заметно больше: PostgreSQL эффективно использует RAM под кэш. Дисковая подсистема критична — размещайте данные PostgreSQL на SSD, желательно отдельном от системного раздела.
Заранее решите, где будут физически располагаться сервер 1С и PostgreSQL. Для небольших внедрений их часто ставят на одну машину — это упрощает администрирование и исключает сетевые задержки. При высокой нагрузке СУБД выносят на отдельный сервер, но тогда критично качество сети между серверами: задержки в доли миллисекунды уже влияют на скорость проведения документов.
Установка PostgreSQL
На Linux установку удобнее выполнять из пакетов. Если используется сборка от «1С», пакеты скачиваются с портала и устанавливаются пакетным менеджером. Ниже пример для DEB-based дистрибутива; точные имена пакетов зависят от версии сборки.
sudo dpkg -i postgresql-*.deb
sudo apt-get install -f
sudo systemctl enable postgresql
sudo systemctl start postgresqlПосле установки проверьте, что служба запущена и кластер инициализирован. Команда pg_lsclusters покажет состояние кластеров, а подключение через sudo -u postgres psql -c "SELECT version();" подтвердит работоспособность. Если кластер не создан автоматически, инициализируйте его вручную с правильной локалью — для 1С обычно требуется локаль, соответствующая языку информационной базы (например, ru_RU.UTF-8).
Задайте пароль суперпользователя postgres: sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'сложный_пароль';". Этот пароль понадобится при создании информационной базы из консоли кластера 1С, если вы не создадите отдельного пользователя СУБД.
Настройка конфигурации PostgreSQL под 1С
Конфигурация по умолчанию рассчитана на минимальное потребление ресурсов и не подходит для рабочей нагрузки. Основной файл настроек — postgresql.conf, расположение зависит от дистрибутива (в Debian-based системах обычно /etc/postgresql/<версия>/main/postgresql.conf).
Ключевые параметры, которые стоит отрегулировать:
shared_buffers— память под кэш данных; типичная рекомендация — 20–25% от объёма RAM сервера, если он выделен под СУБД;work_mem— память на операции сортировки и соединений внутри одного запроса; увеличивайте умеренно, так как значение выделяется на операцию, а не на сервер целиком;effective_cache_size— оценка памяти, доступной для кэширования (ОЗУ минус расходы ОС и других служб); влияет на выбор планов запросов;max_connections— число подключений; должно покрывать количество рабочих процессов 1С с запасом;maintenance_work_mem— память для служебных операций (VACUUM, создание индексов);wal_buffersи параметры журнала — влияют на надёжность и скорость фиксации транзакций.
После изменения параметров перезапустите службу: sudo systemctl restart postgresql. Точные оптимальные значения зависят от объёма базы и профиля нагрузки — универсальных «магических» цифр не существует, любые рекомендации требуют проверки на вашей системе.
Установка и настройка сервера 1С:Предприятия
Сервер 1С устанавливается из дистрибутива платформы: выберите компоненты «Сервер 1С:Предприятия» и «Администрирование сервера». На Linux дистрибутив поставляется в виде пакетов, после установки служба агента сервера регистрируется как srv1cv8 (имя может отличаться в зависимости от версии).
Проверьте, что агент сервера запущен и слушает стандартные порты: 1540 (агент), 1541 (менеджер кластера), диапазон 1560–1591 (рабочие процессы). Команда systemctl status srv1cv8 покажет состояние службы. Если сервер 1С и PostgreSQL на разных машинах, убедитесь, что брандмауэр пропускает трафик на порт PostgreSQL (по умолчанию 5432) со стороны сервера 1С.
Для администрирования установите консоль кластера серверов. На Windows она входит в состав клиентской поставки платформы, на Linux доступна отдельная консоль. Через неё вы будете создавать информационную базу и управлять сеансами.
Создание информационной базы через консоль кластера
Правильный способ создать базу 1С на PostgreSQL — через консоль кластера серверов, а не вручную в psql. Платформа сама создаёт базу данных, назначает владельца и формирует структуру служебных таблиц при первой загрузке конфигурации.
- 1Откройте консоль кластера серверов 1С и подключитесь к агенту сервера
- 2В дереве кластера выберите «Информационные базы» и создайте новую
- 3Укажите имя базы, тип СУБД — PostgreSQL, адрес сервера СУБД и имя создаваемой базы данных
- 4Введите пользователя СУБД (postgres или отдельная учётная запись) и его пароль
- 5Установите нужные параметры: язык, блокировку регламентных заданий при необходимости
- 6Сохраните и дождитесь создания базы — платформа выдаст сообщение об успехе или ошибке
При создании обратите внимание на флаги: «Создать базу данных в случае её отсутствия» должен быть включён для новой базы, а «Блокировка регламентных заданий» полезна для тестовых копий, чтобы они не выполняли фоновые задачи боевой системы. Дата и время сеансов, смещение часового пояса — проверьте, что они соответствуют серверному времени.
После создания базы подключитесь к ней конфигуратором: добавьте базу в список информационных баз на клиенте, указав сервер 1С и имя базы в кластере. Затем загрузите конфигурацию из файла .dt (выгрузка из файловой базы или шаблона) или создайте базу сразу из шаблона конфигурации при добавлении в список.
Загрузка данных и проверка работоспособности
Если переезжаете с файловой базы, стандартный путь — выгрузка в файл .dt из конфигуратора файловой базы и загрузка в новую серверную. Для больших баз процесс занимает заметное время; выполняйте его вне рабочих часов и следите за свободным местом на диске PostgreSQL — в процессе загрузки растут журналы WAL.
Как проверить результат
База отображается в списке информационных баз без ошибок
База отсутствует или консоль показывает ошибку подключения к СУБД
Конфигуратор открывается, видна структура конфигурации
Ошибка «база данных не обнаружена» или ошибка аутентификации СУБД
Документы проводятся, отчёты формируются за приемлемое время
Ошибки блокировок, таймауты, чрезмерно долгое выполнение простых операций
Нет повторяющихся ошибок FATAL и PANIC
Ошибки соединений, нехватки памяти, повреждений данных
После загрузки обязательно выполните тестирование и исправление информационной базы в режиме проверки логической целостности, а также обновите статистику в PostgreSQL (платформа делает это автоматически при регламентных операциях, но после массовой загрузки полезно выполнить ANALYZE вручную через psql для ускорения первых запросов).
Сразу после переезда на PostgreSQL пользователи часто жалуются на «тормоза», хотя на файловой базе всё работало быстро. Чаще всего причина не в СУБД, а в отсутствии настроек: дефолтный shared_buffers в сотни раз меньше разумного для сервера. Настройка postgresql.conf и перезапуск службы решают большинство таких жалоб без каких-либо изменений в конфигурации 1С.
Резервное копирование и сопровождение
Файловое копирование каталога данных PostgreSQL на работающем сервере недопустимо — получите несогласованную копию. Используйте штатные средства: pg_dump для логических копий отдельных баз или pg_basebackup с архивированием WAL для физических копий всего кластера. Дополнительно сохраняйте выгрузки .dt средствами 1С — они незаменимы для переноса между версиями платформы и СУБД.
Настройте регламентное обслуживание: автовакуум в PostgreSQL включён по умолчанию, но для активно изменяемых баз 1С его параметры часто требуют ужесточения, иначе таблицы раздуваются от «мёртвых» строк. Следите за размером каталога данных и журналов, настройте ротацию логов.
Что важно запомнить
Используйте совместимую сборку PostgreSQL, создавайте базу через консоль кластера 1С, обязательно настройте postgresql.conf под доступную память, а резервные копии делайте штатными средствами СУБД, а не копированием файлов.
Частые вопросы
Можно ли использовать бесплатный PostgreSQL для коммерческой базы 1С?
Да, PostgreSQL распространяется по свободной лицензии, и его использование с 1С не требует оплаты самой СУБД. Лицензии оплачиваются только на платформу 1С и сервер 1С (для многопользовательской работы нужна серверная лицензия). Сборки PostgreSQL от фирмы «1С» также распространяются бесплатно для пользователей с действующей подпиской.
Нужно ли создавать базу данных вручную в psql перед созданием в консоли 1С?
Нет. При создании информационной базы в консоли кластера платформа сама создаёт базу данных в PostgreSQL, если отмечен соответствующий флаг. Ручное создание имеет смысл только в особых сценариях, например когда базу должен подготовить администратор СУБД с ограниченными правами — тогда флаг создания снимается, а пустая база с нужным владельцем создаётся заранее.
Почему при создании базы возникает ошибка про несовместимую версию PostgreSQL?
Платформа 1С проверяет версию и сборку СУБД при подключении. Ошибка означает, что установленная версия PostgreSQL вне поддерживаемого диапазона или сборка не содержит необходимых патчей. Решение — установить версию из списка совместимых для вашего релиза платформы, предпочтительно сборку от «1С».
Можно ли перенести базу с MS SQL на PostgreSQL?
Да, но не средствами самих СУБД. Стандартный путь — выгрузка базы в файл .dt через конфигуратор на старой платформе и загрузка в новую базу на PostgreSQL. Учтите, что прямое копирование файлов данных между разными СУБД невозможно, а объёмные базы выгружаются долго, поэтому планируйте окно миграции заранее.
Сколько подключений к PostgreSQL нужно для сервера 1С?
Каждый рабочий процесс сервера 1С открывает собственные соединения с СУБД. Ориентируйтесь на количество рабочих процессов кластера плюс запас на фоновые задания и служебные сеансы. Если в логах PostgreSQL появляются ошибки «too many connections», увеличьте max_connections и перезапустите службу, предварительно оценив расход памяти на каждое соединение.
Что делать, если база после переезда работает медленнее файловой версии?
Проверьте три вещи: настроен ли postgresql.conf (прежде всего shared_buffers и effective_cache_size), обновлена ли статистика после загрузки данных (выполните ANALYZE), нет ли сетевых задержек между сервером 1С и СУБД, если они разнесены. В большинстве случаев причина — конфигурация PostgreSQL по умолчанию, рассчитанная на минимальные ресурсы.