Ошибка PostgreSQL «Sorry, too many clients already»

Жила себе и здравствовала связка 1C + PostgreSQL, которая была описана вот в этой статье, но в один прекрасный момент начались жалобы от пользователей -ки, некоторые даже со скриншотами:

Все жаловались на одну зловещую ошибку — при создании базы пишет бяку:

FATAL: sorry, too many clients already

Суть проблемы в принципе понятна с описания ошибки — превышено максимальное количество максимальных подключений.

Лечится легко и просто.

Заглянем в файлик конфигурации постгреса и найдем параметр:

max_connections

По умолчанию его значение = 50, если не ошибаюсь. Установим достаточное количество, можно наугад (я поставил 200).
Но это еще не все. Строчкой ниже в моем конфиге было примечание:

# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).  You might
# also need to raise shared_buffers to support more connections.

Поэтому, пошли искать параметр:

shared_buffers

Рядом также был комментарий о том, как рассчитывается минимальное количество шаренной памяти:

# min 128kB or max_connections*16kB
# (change requires restart)

Я выставил = 128MB с запасом, все-таки не 90-е годы, память дешевая ;)
Для того, что бы изменения вступили в силу, требуется перезапуск сервера PostgreSQL.

ВАЖНО: Если в текущий момент сервер 1C запущен, и более того, если на нем кто-то работает с базами, перезапускать PostgreSQL сервер категорически не рекомендуется, т.к. это может привески к потере данных и повреждению самой базы PostgreSQL (горький опыт). Более разумно будет выгнать пользователей из -ки, остановить сервер (потушить службу), и только тогда перезагрузить сервер PostgreSQL.

Это избавит вас не только от матюков крикливых бухгалтеров и программистов, за внезапное слетание сессии , но также избавит от гемороя с восстановлением базы данных, на которое при значительных объемах может уйти достаточно много времени.

Удачи в траблшутинге ;)

Ошибка PostgreSQL «Sorry, too many clients already»: 1 комментарий

Обсуждение закрыто.