当PostgreSQL进程“在事务中空闲”时,它意味着什么?

时间:2008-09-09 00:40:53

标签: postgresql

PostgreSQL进程“在事务中空闲”是什么意思?

在我正在查看的服务器上,输出“ps ax | grep postgres”我看到9个PostgreSQL进程如下所示:

postgres: user db 127.0.0.1(55658) idle in transaction

这是否意味着某些进程挂起,等待提交事务?任何指向相关文档的内容都表示赞赏。

2 个答案:

答案 0 :(得分:41)

PostgreSQL manual表示这意味着交易是开放的(在BEGIN内)并且是空闲的。这很可能是使用正在思考或打字的显示器连接的用户。我的系统上也有很多这些。

但是,如果您使用Slony进行复制,则Slony-I FAQ建议idle in transaction可能意味着网络连接突然终止。有关更多详细信息,请查看该常见问题解答中的讨论。

答案 1 :(得分:13)

如上所述:Re: BUG #4243: Idle in transaction最好检查你的pg_locks表,看看被锁定的内容,这可能会让你更好地了解问题所在。

相关问题