运维开发网

Postgresql_连接管理

运维开发网 https://www.qedev.com 2021-03-06 12:51 出处:51CTO 作者:李石岩
Postgresql连接管理
  • 连接管理

  • 终止正在执行的语句并杀掉连接
1) 查出活动连接列表,及其进程ID

select * from pg_stat_activity;

pg_stat_activity  视图包含每个连接上最近一次执行的语句、使用的用户名(usename字段)、所在的database名(datname字段)、以及语句开始执行的时间
,通过查询该视图可以找到需要终止会话所对应的进程ID 

2) 取消连接 ,假设对应的ID 号码是345  的活动查询。
select pg_cancel_backend(345);
该操作不会终止连接本身。

3)终止该连接

select pg_terminate_backend(345);

注意仅仅终止正在执行的语句而没彻底杀掉连接,客户端可以立即重新执行刚刚被终止掉的会话语句的,这会导致系统陷入之前的状态。

注意上边语句只能一次性处理一个连接。

终止某个用户的所有连接

select pg_terminate_backend(pid)  from pg_stat_activity
where username ='用户'

--杀死进程 ,pid为进程id

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号