如何终止/终止PostgreSQL挂起查询

当PostgreSQL中的SQL查询挂起且无法通过取消命令解决时,可以通过在终端使用'ps'和'kill'命令手动终止。本文介绍了如何列出所有进程,识别挂起的事务并执行必要的杀进程操作,以解决查询挂起问题。
摘要由CSDN通过智能技术生成

今天,我发现其中一个SQL查询挂在PostgreSQL中,并且从未发布过。 “取消查询”命令将无济于事,查询仅挂在此处并显示“ 事务中空闲 ”状态。 它让我别无选择,只能去Debian终端发出“ kill”命令来手动终止它。

在PostgreSQL中查询挂起或不响应是因为我们在Web应用程序中未正确处理事务管理器。 当系统意外关闭时,正在运行的查询将挂在PostgreSQL中,并且事务管理器(例如DataSourceTransactionManager )无法回滚正在进行的事务。

注意
将事务管理器更改为JtaTransactionManager ,即使系统意外关闭,我的Web应用程序也可以终止正在进行的事务。

但是在这里,我向您展示了如何终止挂起的SQL查询。 在PostgreSQL中,所有挂起的查询将显示为“ 事务中空闲 ”。 首先,您必须列出所有现有的PostgreSQL进程,然后发出kill kill命令来手动终止挂起的查询。

1.列出所有流程

发出“ ps -ef | grep postgres ps -ef | grep postgres ”命令列出所有属于postgres用户的现有进程。

mkyong:~# ps -ef | grep postgres
postgres 13648     1  0 11:04 ?        00:00:00 /var/lib/postgresql/PostgresPlus8.3xxxxxxx
postgres 13651 13648  0 11:04 ?        00:00:00 postgres: logger process                                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值