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

Rea*_*nly 73 postgresql

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

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

postgres: user db 127.0.0.1(55658) idle in transaction
Run Code Online (Sandbox Code Playgroud)

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

Ano*_*ose 43

PostgreSQL的手动指示,这意味着该事务是打开的(内部BEGIN)和空闲.这很可能是使用正在思考或打字的显示器连接的用户.我的系统上也有很多这些.

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

  • 只有'空闲'意味着什么?处于"闲置"状态的交易是否也开放? (7认同)
  • *监控*是什么意思? (2认同)
  • @Abdull psql 客户端。“监视器”是用于控制数据库的软件的(显然)古老的术语。 (2认同)

Art*_*mas 15

正如这里提到的:Re:BUG#4243:闲置在事务中最好检查你的pg_locks表,看看被锁定的是什么,这可能会让你更好地了解问题所在.