Top.Mail.Ru
31 ИЮЛЯ, 17:00 МСК
БЕСПЛАТНО
Online MeetUp «Индекс в 1С: разбираем реальные кейсы»

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

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

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

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar