Что это значит, когда процесс PostgreSQL «простаивает в транзакции»?


87

Что это значит, когда процесс PostgreSQL «простаивает в транзакции»?

На сервере, который я просматриваю, в выводе "ps ax | grep postgres" я вижу 9 процессов PostgreSQL, которые выглядят следующим образом:

postgres: user db 127.0.0.1(55658) idle in transaction

Означает ли это, что некоторые процессы зависли в ожидании фиксации транзакции? Любые указатели на соответствующую документацию приветствуются.

Ответы:


56

В руководстве PostgreSQL указано, что это означает, что транзакция открыта (внутри BEGIN) и простаивает. Скорее всего, с помощью монитора подключился пользователь, который думает или печатает. У меня тоже много таких в моей системе.

Если вы используете Слон для репликации, однако, Slony-I FAQ предполагает idle in transactionможет означать , что подключение к сети было прекращено внезапно. Ознакомьтесь с обсуждением в этом FAQ для получения более подробной информации.


9
Что значит «простаивать» ?? Открыты ли также транзакции в состоянии ожидания?
Юсуф Султан

2
Что означает монитор ?
Абдул

2
@Abdull Клиент psql. «Монитор» - это (очевидно) архаичный термин для программного обеспечения, используемого для управления базой данных.
Anonymoose 04


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.