openGauss 强制结束指定的问题会话
强制结束指定的问题会话
问题现象
有些情况下,为了使系统继续提供服务,管理员需要强制结束有问题的会话。
处理办法
-
以操作系统用户omm登录主机。
-
使用如下命令连接数据库。
gsql -d postgres -p 8000
postgres为需要连接的数据库名称,8000为端口号。
-
从当前活动会话视图查找问题会话的线程ID。
SELECT datid, pid, state, query FROM pg_stat_activity;
显示类似如下信息,其中pid的值即为该会话的线程ID。
datid | pid | state | query -------+-----------------+--------+------ 13205 | 139834762094352 | active | 13205 | 139834759993104 | idle | (2 rows)
-
根据线程ID结束会话。
SELECT pg_terminate_backend(139834762094352);
显示类似如下信息,表示结束会话成功。
pg_terminate_backend --------------------- t (1 row)
显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。
FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded.
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
· 全程使用 AI 从 0 到 1 写了个小工具