PostgreSQL进程“在事务中空闲”是什么意思?
在我正在查看的服务器上,“ps ax | grep postgres”的输出我看到 9 个 PostgreSQL 进程,如下所示:
postgres: user db 127.0.0.1(55658) idle in transaction
这是否意味着某些进程已挂起,等待提交事务?任何指向相关文档的指针表示赞赏。
PostgreSQL进程“在事务中空闲”是什么意思?
在我正在查看的服务器上,“ps ax | grep postgres”的输出我看到 9 个 PostgreSQL 进程,如下所示:
postgres: user db 127.0.0.1(55658) idle in transaction
这是否意味着某些进程已挂起,等待提交事务?任何指向相关文档的指针表示赞赏。
PostgreSQL 手册指出这意味着事务是打开的(在 BEGIN 内部)并且处于空闲状态。很可能是使用正在思考或打字的显示器连接的用户。我的系统上也有很多。
但是,如果您使用 Slony 进行复制,Slony-I FAQ建议idle in transaction
可能意味着网络连接突然终止。查看该常见问题解答中的讨论以获取更多详细信息。
如此处所述:Re: BUG #4243: Idle in transaction最好检查您的 pg_locks 表以查看被锁定的内容,这可能会让您更好地了解问题所在。