96

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

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

postgres: user db 127.0.0.1(55658) idle in transaction

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

4

2 回答 2

69

PostgreSQL 手册指出这意味着事务是打开的(在 BEGIN 内部)并且处于空闲状态。很可能是使用正在思考或打字的显示器连接的用户。我的系统上也有很多。

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

于 2008-09-09T01:07:21.900 回答
20

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

于 2008-09-16T22:55:20.637 回答