pg_cancel_backend这个函数主要是用来取消一个查询(进程),权限必须是管理员或者查询的所有者。

具体使用如下:

首先,查出你要取消的进程号

select procpid from pg_stat_activity where ......;

其次,用这个函数来取消

select pg_cancel_backend(procpid);

这个函数主要是用来回滚事务,但是会话(session)并不会退出去,比如你要用这个函数来终止一个<IDLE>是不可能的。

当一个查询语句查询时间较长时用这个函数偶尔也不好用,这个时候需要多执行几次或去OS上用kill命令来删除这个进程效果就来得快。


可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。
ps -ef |grep -i postgres |grep -i con