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

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

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

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

Ошибка PostgreSQL 08004 sqlserver_rejected: отклонение подключения СУБД

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

Сервер СУБД отвергает попытку подключения нового сеанса:

FATAL: remaining connection slots are reserved for non-replication superuser connections
-- либо:
FATAL: sorry, too many clients already
-- либо:
FATAL: pg_hba.conf rejects connection for host "192.168.1.100", user "usr1cv8", database "ib_db"
SQLSTATE: 08004

1. Исправление ошибки пула соединений (Too many clients)

Увеличьте параметр max_connections в файле postgresql.conf:

# Рекомендуемое значение для серверов 1С (от 300 до 1000 в зависимости от числа сессий)
max_connections = 500

# Зарезервированные слоты под суперпользователя для аварийного входа
superuser_reserved_connections = 5

Перезапустите PostgreSQL:

systemctl restart postgresql

2. Корректировка правил доступа в pg_hba.conf

Если отказ вызван отсутствием записи в pg_hba.conf, добавьте разрешающую строку в конец файла:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    ib_db           usr1cv8         192.168.1.0/24          scram-sha-256
# Либо для всех баз и хостов локальной сети:
host    all             all             192.168.0.0/16          scram-sha-256

Примените настройки без перезапуска СУБД:

SELECT pg_reload_conf();

3. Диагностика активных соединений

SELECT count(*), state, usename, client_addr 
FROM pg_stat_activity 
GROUP BY state, usename, client_addr;

4. Внедрение пулера соединений (PgBouncer)

При большом числе пользователей 1С (>300) используйте пул соединений PgBouncer в режиме pool_mode = session или transaction.

💡 Практика специалистов: Для баз 1С:Предприятие при настройке pg_hba.conf всегда используйте метод аутентификации scram-sha-256 или md5. Никогда не используйте метод trust для удаленных сетевых подключений.

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

Почему простое увеличение max_connections до 5000 может ухудшить производительность?

Каждое активное соединение в PostgreSQL использует отдельный процесс операционной системы и потребляет ресурсы CPU на поддержание разделяемой памяти и блокировок. Слишком большое число процессов приводит к деградации планировщика ядра ОС (context switching).

Как применить изменения в pg_hba.conf без отключения активных пользователей?

Выполните в psql команду SELECT pg_reload_conf(); или в терминале Linux: pg_ctl reload / systemctl reload postgresql.

Что делать, если база не пускает даже админа из-за исчерпания подключений?

Подключитесь локально на сервере под пользователем postgres через UNIX-сокет. Параметр superuser_reserved_connections гарантирует доступ суперпользователю даже при 100% заполнении обычного пула.

Почему в 1С при 50 пользователях в базе может быть 300+ соединений к PostgreSQL?

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

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