VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

强制终止用户会话

功能描述

针对需要终止用户会话的场景,可以终止指定用户会话,释放Vastbase Server相应的资源而不影响实例正常运行,被终止的用户操作或事务会自动回滚。

操作方法

参考如下语句根据线程结束会话。

SELECT pg_terminate_backend(pid);

pg_terminate_backend函数用户终止一个后台线程。

  • 返回值类型:Boolean
  • 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户,后端线程所连接的数据库的属主,后端线程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。

示例

1、从当前活动会话视图查找会话的线程ID。

SELECT datid, pid, state, query FROM pg_stat_activity; 

显示类似如下信息,其中pid的值即为该会话的线程ID。

datid |       pid       | state  | query 
-------+-----------------+--------+------ 
13205 | 139834762094352 | active | 
13205 | 139834759993104 | idle   | 
(2 rows) 

2、根据线程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.