Меня зовут Валерий, разработчик 1С в Programming Store.
В этой статье я расскажу о преимуществах использования PostgreSQL как объектно-реляционной СУБД и Linux в качестве операционной системы сервера. Поделюсь рекомендациями по настройке, фишками для оптимизации работы и решениями распространенных проблем.
Содержание:
1.1. PostgreSQL и Linux при развертывании «1С:Предприятия».
1.2. Почему PostgreSQL.
1.3. Почему Linux.
2. Требования.
3. Установка.
5. Фишки.
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