Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PG_TOO_MANY_CONNECTIONS 1С:Предприятие и СУБД

Ошибка PostgreSQL: FATAL: too many connections for role в 1С

Обновлено: 26.08.2026 · Официальная документация ↗

При входе пользователей в 1С или во время массового запуска фоновых регламентных заданий появляется сообщение об ошибке:

FATAL: too many connections for role "postgres" (или "usr1cv8")
  • Новые пользователи не могут подключиться к базе, 1С вылетает при старте.
  • В журнале PostgreSQL регистрируются критические ошибки исчерпания пула соединений.
  • Сервер перегружен неактивными сессиями рабочих процессов rphost.

Шаг 1. Снятие персонального лимита подключений для пользователя БД

Подключитесь к СУБД через утилиту pgAdmin или командную строку psql и выполните запрос:

ALTER ROLE usr1cv8 CONNECTION LIMIT -1;
ALTER ROLE postgres CONNECTION LIMIT -1;

Значение -1 снимает индивидуальное ограничение на количество одновременных подключений для данной роли.

Шаг 2. Увеличение глобального параметра max_connections

  1. Найдите конфигурационный файл postgresql.conf (в Linux: /var/lib/pgsql/data/postgresql.conf или /etc/postgresql/..., в Windows: в папке установки PostgreSQL/data).
  2. Откройте файл в текстовом редакторе и найдите строку max_connections.
  3. Увеличьте значение (например, с 100 до 300 или 500 в зависимости от количества пользователей):
    max_connections = 300
  4. Сохраните файл и перезапустите службу PostgreSQL:
    # Linux:
    systemctl restart postgresql-14
    
    # Windows (через PowerShell от Администратора):
    Restart-Service postgresql*

Шаг 3. Ограничение спящих сеансов на стороне кластера 1С

В консоли администрирования 1С откройте свойства кластера и настройте таймауты:

  • Время засыпания пассивных сеансов: 1200 сек (20 минут).
  • Время завершения спящих сеансов: 86400 сек (или меньше при нехватке памяти).
💡 Практика специалистов: Если у вас больше 50 пользователей, стандартного лимита max_connections=100 гарантированно не хватит. Рекомендуемая формула для 1С: (Количество активных пользователей * 2) + 50 соединений на регламентные задания.

Частые вопросы (FAQ)

Почему 1С создает так много подключений к PostgreSQL?

Каждый рабочий процесс rphost и каждое отдельное фоновое задание в 1С открывает собственный пул соединений с базой данных PostgreSQL для параллельной обработки запросов.

Можно ли просто поставить max_connections = 5000?

Нет, каждое соединение в PostgreSQL резервирует оперативную память (work_mem и системные буферы). Слишком большое число приведет к исчерпанию RAM и аварийному падению СУБД.

Как посмотреть, сколько соединений занято прямо сейчас?

Выполните SQL-запрос: SELECT count(*), usename FROM pg_stat_activity GROUP BY usename;

Нужно ли перезагружать сервер 1С после изменения postgresql.conf?

Сам сервер 1С перезагружать не обязательно, но перезапуск службы PostgreSQL строго необходим, так как параметр max_connections применяется только при старте сервера баз данных.

Полезные материалы
Рекомендуем