PostgreSQL и Linux для «1С:Предприятие-8»

02.06.25

База данных - Администрирование СУБД

Преимущества использования PostgreSQL как объектно-реляционной СУБД и Linux в качестве операционной системы сервера

     Меня зовут Валерий, разработчик 1С в Programming Store.

 

В этой статье я расскажу о преимуществах использования PostgreSQL как объектно-реляционной СУБД и Linux в качестве операционной системы сервера. Поделюсь рекомендациями по настройке, фишками для оптимизации работы и решениями распространенных проблем.

 

Содержание:

1. Вводная часть:  

1.1. PostgreSQL и Linux при развертывании «1С:Предприятия».

1.2. Почему PostgreSQL.

1.3. Почему Linux.

2. Требования.

3. Установка.

4. Особенности настройки.

5. Фишки.

6. Возможные ошибки.

7. Что еще почитать.

 

 

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

6. Документация по Zabbix

PostgreSQL СУБД Linux «1С:Предприятия»

См. также

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

В финальной статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на осенней конференции INFOSTART TECH EVENT 2024, рассказываем, чем может быть полезна информация, полученная из дампа.

27.05.2025    1389    it-expertise    0    

12

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Во второй статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на конференции INFOSTART TECH EVENT 2024, рассмотрим, какую информацию содержат файлы дампа, чем она полезна и как ее анализировать.

14.04.2025    1340    it-expertise    7    

16

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Опубликовали первую статью по итогам доклада «Дамп – не приговор, а повод задуматься», с которым выступали на конференции INFOSTART TECH EVENT 2024.

25.03.2025    956    it-expertise    7    

10

Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

В очередной раз решая проблему с доступом к файлу программной лицензии - решил сделать памятку на будущее для себя и коллег.

10.03.2025    1747    unichkin    10    

13

Рефакторинг и качество кода Linux Программист Платформа 1С v8.3 Бесплатно (free)

Во второй статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, поговорим об особенностях анализа конфигурации 1С на наличие платформеннозависимого кода.

31.01.2025    2093    it-expertise    1    

9

Linux Системный администратор Платформа 1С v8.3 Россия Бесплатно (free)

Как устроить зависание системы (Ubuntu) из 1С (толстый клиент) с помощью буфера обмена и что с этим делать.

29.01.2025    1565    Klok22    6    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 920 02.06.25 13:33 Сейчас в теме
похоже на рекламный проспект
2. RocKeR_13 1420 02.06.25 13:39 Сейчас в теме
3. paulwist 03.06.25 08:09 Сейчас в теме
Использовать отдельный инстанс PostgreSQL для каждой базы 1С


Нет слов, ... всем "фишкам" фишка :) :) :)

PS я не понял, это плюс или минус ПГ :)
5. starik-2005 3178 03.06.25 13:40 Сейчас в теме
(3)
Нет слов, ... всем "фишкам" фишка :) :) :)
Кстати, чем плохо? По мне так единственная полезная вещь в тексте )))
6. paulwist 03.06.25 15:20 Сейчас в теме
(5)
Кстати, чем плохо? По мне так единственная полезная вещь в тексте )))


Нуу, сегодня на форуме был пост про Restore с 39 БД 1C, те в парадигме ТСа, надо иметь 39 инстансов, ...

С точки зрения "лучше быть богатым и здоровым, чем бедным и больным" ничего плохого нет.

С точки зрения "работоспособности", говорит, что ПГ не такая уж

PostgreSQL и 1С даёт следующие преимущества:

- надёжность и стабильность:


раз надо страховаться таким способом :)
7. starik-2005 3178 03.06.25 15:38 Сейчас в теме
(6)
те в парадигме ТСа, надо иметь 39 инстансов
Раз у чела столько баз, то, возможно, и система такая, что пару терабайт памяти. А там что один инстанс, что 40 - особой разницы нет в части потоков. Именно из-за этого 1С предлагает ставить параллелизм в мелкомягких скулах в единицу - чтобы на одного юзера один поток был. А раз юзеров много, то и потоков будет столько, сколько юзеров. А разделить инстансы - следующий шаг, где в одном изолированном процессе будут изолированно порождать потоки изолированные юзеры. Ничем не плохо.
8. paulwist 03.06.25 16:05 Сейчас в теме
(7)
А там что один инстанс, что 40 - особой разницы нет в части потоков.


Хех, служебные потоки каждого инстанса не считаем?? :)

(7)
Именно из-за этого 1С предлагает ставить параллелизм в мелкомягких скулах в единицу - чтобы на одного юзера один поток был


Хм, 1С объясняет это по другому, мол при max degree of parallelism = 1 при кривых планах/запросах будут тормоза только у одного юзера, а не у всех одновременно.

(7)
А разделить инстансы - следующий шаг, где в одном изолированном процессе будут изолированно порождать потоки изолированные юзеры.


Видел это для БД с десятками/сотнями млрд записей в таблицах (1 инстанс = 1 БД), либо в OLTP 1000-10000 транзакций в секунду, но это не про 1С.
9. starik-2005 3178 03.06.25 16:27 Сейчас в теме
(8)
служебные потоки
Служебные потоки ща живут, через секунду нет. Они там постоянно флуктуируют, как квантовые эффекты на горизонте событий сферы Шварцшильда.
будут тормоза только у одного юзера, а не у всех одновременно
Ну вот, отличное объяснение. Чем тебе не нравится?
но это не про 1С
Да вообще хайлоад не про 1С. В нее надо уже сгруппированные данные тащить - синтетику, и все будет ОК. Ну если там действительно миллиарды. А если сотни, то и пофиг.
10. paulwist 04.06.25 09:02 Сейчас в теме
(9)
Служебные потоки ща живут, через секунду нет. Они там постоянно флуктуируют, как квантовые эффекты на горизонте событий сферы Шварцшильда.


Что-то мне подсказывает, что 40 инстансов генерят в 40 раз больше потоков чем один инстанс.

(9)
Ну вот, отличное объяснение. Чем тебе не нравится?


Хех, убогостью решения, когда проще запретить, чем дать механизм поддержки правильных индексов, статистик, секционирования итп. НО это к треду не относится :)

(9)
В нее надо уже сгруппированные данные тащить - синтетику, и все будет ОК.


Опять же, будет ОК если

(9)
А если сотни, то и пофиг.
12. RocKeR_13 1420 05.06.25 09:59 Сейчас в теме
(6)
Нуу, сегодня на форуме был пост про Restore с 39 БД 1C, те в парадигме ТСа, надо иметь 39 инстансов, ...

Выше выкладывал весьма полезные видео про PostgreSQL - если посмотрите, то получите исчерпывающий ответ на вопрос о количестве экземпляров Postgre)
4. 2tvad 74 03.06.25 10:06 Сейчас в теме
И в докер разместить или k8s)
11. alexey_kurdyukov 171 05.06.25 05:13 Сейчас в теме
Пишите честно: "использовать постгрес и Линукс нужно потому, что нет вообще никаких альтернатив", вот и всё, это теперь наша печальная реальность.
Оставьте свое сообщение