PostgreSQL и Linux для «1С:Предприятие-8»
В этой статье я расскажу о преимуществах использования PostgreSQL как объектно-реляционной СУБД и Linux в качестве операционной системы сервера. Поделюсь рекомендациями по настройке, фишками для оптимизации работы и решениями распространенных проблем.
Contents
PostgreSQL и Linux при развертывании «1С:Предприятия»
С каждым годом всё больше компаний переходят на использование открытых технологий, особенно в сфере автоматизации бизнеса.
Одним из наиболее популярных решений становится связка PostgreSQL (в качестве СУБД) и Linux (в качестве операционной системы сервера) при развертывании «1С:Предприятия».
Это решение выгодно как с точки зрения стоимости, так и с точки зрения надёжности и масштабируемости. В последние годы ещё одним важным плюсом стало соответствие требованиям по использованию ПО из государственного реестра.
Единственный минус — более высокие требования к квалификации специалистов по настройке и поддержке сервера СУБД.
Почему PostgreSQL
PostgreSQL — это мощная объектно-реляционная СУБД с открытым исходным кодом, которая хорошо подходит для задач «1С:Предприятия».
Основные преимущества:
— совместимость с 1С: с 2011 года PostgreSQL официально поддерживается как рекомендованная СУБД. Используются специальные сборки PostgreSQL от 1С или Postgres Professional;
— производительность: высокая скорость обработки транзакций, конкурентный доступ благодаря MVCC, поддержка больших объёмов данных, гибкая настройка под различные сценарии использования;
— расширяемость: поддержка расширений (pg_stat_statements, auto_explain), интеграция с внешними системами через FDW, REST и другие механизмы.
Почему Linux
Использование Linux в связке с PostgreSQL и 1С даёт следующие преимущества:
— надёжность и стабильность: долговременная работа серверов, отказоустойчивость при грамотной настройке RAID, LVM, мониторинга;
— безопасность: гибкая настройка прав, SELinux, встроенные механизмы контроля;
— бесплатность: отсутствие необходимости в лицензиях, возможность использования отечественных дистрибутивов.
Требования
— PostgreSQL версии 9.6 или выше. Лучше использовать сборку от 1С или Postgres Professional.
— Поддерживаемые ОС: CentOS, Red Hat, Ubuntu, Debian, РЕД ОС.
— Минимальные системные требования: 8 ГБ ОЗУ, SSD-диски, многоядерный процессор.
Важно: хотя возможна установка PostgreSQL на Windows, для продуктивных систем 1С настоятельно рекомендуется использовать Linux из-за ограничений производительности и работы с большим числом файлов.
Установка
Пример установки PostgreSQL на Ubuntu:
1. Добавление репозитория:
wget https://repo.postgrespro.ru/1c-16/keys/pgpro-repo-add.sh
sh pgpro-repo-add.sh
2. Установка:
apt install postgrespro-1c-16
3. Проверка локали:
locale
Должно быть ru_RU.UTF-8
4. Инициализация кластера:
initdb -D /opt/pgpro_data --data-checksums --encoding=UTF8 --locale=ru_RU.UTF-8 --lc-collate=ru_RU.UTF8 --lc-ctype=ru_RU.UTF-8 --lc-messages=C
5. Запуск и автозагрузка:
systemctl enable --now postgrespro-1c-16
Особенности настройки
После установки важно правильно настроить PostgreSQL:
— Файл pg_hba.conf (сетевой доступ):
host all all 192.168.1.0/24 md5
— Основные параметры postgresql.conf:
shared_buffers = 2GB — кэш СУБД (25–40% от ОЗУ)
work_mem = 64MB — объём памяти на сортировки (зависит от числа пользователей)
effective_cache_size = 6GB — размер кэша ОС (50–70% от ОЗУ)
maintenance_work_mem = 512MB — обслуживание: VACUUM, CREATE INDEX и т. д.
autovacuum = on — автоматическая очистка таблиц
max_connections = 200 — максимальное количество подключений
Настройки лучше размещать в конце файла postgresql.conf для удобства. После изменений выполните перезапуск:
sudo service postgresql restart
Фишки
— Использовать отдельный инстанс PostgreSQL для каждой базы 1С: это упростит обслуживание и устранение проблем.
— Использовать мониторинг: Prometheus, Grafana, Zabbix, ELK, pg_stat_statements, auto_explain.
— Регулярно делать бэкапы: pg_basebackup, pgBackRest, barman.
— Совместимость с CI/CD-средами: автоматизация развертывания и тестирования.
Возможные ошибки
Медленная работа пользователей:
— причины: неработающий autovacuum, нехватка памяти, неэффективные запросы;
— решение: настройка autovacuum, анализ pg_stat_statements и auto_explain.
Ошибка подключения из 1С:
— причины: PostgreSQL не запущен, заблокирован порт, неверные учётные данные подключения;
— решение: проверить запущены сервисы и настройки firewall;
Ошибка «deadlock detected»:
— причина: ошибка в транзакционной логике в коде 1С;
Ошибка «out of shared memory» или «too many clients»:
— причина: превышен max_connections или утечка соединений с внешними клиентскими ПО;
— решение: увеличить лимит и настроить pgbouncer.
Резкое увеличение размера базы:
— причины: неэффективный autovacuum, много старых WAL-файлов;
— решение: сделать настройки более «агрессивными», autovacuum_vacuum_threshold, autovacuum_vacuum_scale_factor. Регулярно выполнять VACUUM FULL, REINDEX.
Ошибка записи: «could not write to file», «no space left on device»:
— причина: переполнение диска;
— решение: удалить/архивировать старые WAL-файлы, расширить хранилище.
Общие рекомендации:
— использовать pg_stat_statements для анализа производительности;
— настроить мониторинг (Grafana, Zabbix);
— использовать пул соединений (pgbouncer);
— проводить регулярное обслуживание (VACUUM, REINDEX);
— вести логирование длительных операций (log_min_duration_statement).
Что еще почитать
1. Официальный сайт PostgreSQL
2. Документация Postgres Professional
3. Документация по pg_stat_statements
4. Документация по auto_explain
5. Руководство по Grafana и Prometheus
Comments
So empty here ... leave a comment!