更新时间:2026-02-06 GMT+08:00
分享

服务器信号函数

服务器信号函数向其他服务器线程发送控制信号。仅系统管理员有权执行以下函数。

pg_cancel_backend(pid int)

描述:取消一个后端线程正在执行的语句。

返回值类型:Boolean

备注:该函数向由pid标识的后端线程发送一个查询取消(SIGINT)信号。可以通过PG_STAT_ACTIVITY视图的pid字段找到活动后端线程的PID,或者在服务器上使用ps命令列出数据库线程。具有SYSADMIN权限的用户、后端线程所连接的数据库的属主、后端线程的属主,或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。

pg_cancel_session(pid bigint, sessionid bigint)

描述:线程池模式下,取消一个活跃状态会话正在执行的语句。

返回值类型:Boolean

备注:该函数的输入参数可以通过PG_STAT_ACTIVITY视图中的pid字段和sessionid的字段查询。当输入参数pid和sessionid相同,且均为线程id时,其功能和pg_cancel_backend函数相同。

pg_cancel_invalid_query()

描述:取消一个后端的无效查询。

返回值类型:Boolean

备注:仅系统管理员才有权限取消连接到降级的GTM的后端中运行的查询。

pg_reload_conf()

描述:该函数给服务器发送一个SIGHUP信号,通知所有服务器线程重新装载配置文件。

返回值类型:Boolean

pg_rotate_logfile()

描述:滚动服务器的日志文件。

返回值类型:Boolean

备注:该函数向日志文件管理器发送信号,使其立即切换到一个新的输出文件。该函数仅在redirect_stderr用于日志输出时才有效,否则不会产生日志文件管理器子线程。

pg_terminate_session(pid bigint, sessionid bigint)

描述:线程池模式下,终止一个后端会话。

返回值类型:Boolean

备注:该函数的入参可以通过pg_stat_activity视图中的pid字段和sessionid的字段查询。具有SYSADMIN权限的用户、会话所连接的数据库的属主、会话的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。若执行该函数后未成功终止目标会话,则会强制关闭该会话和客户端的socket连接。

  • 当入参pid和sessionid相同,且均为线程id时,该函数可终止非线程池的线程、活跃状态的线程池线程。
  • 当入参pid和sessionid不同时,该函数可终止活跃状态的会话,或关闭非活跃状态会话和客户端的socket连接。

pg_terminate_active_session_socket(pid int64, sessionid int64)

描述:关闭一个活跃session和客户端的socket连接。

返回值类型:Boolean

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

pg_terminate_backend(pid int)

描述:终止一个后端线程。仅系统管理员和线程所有者可执行该函数。

返回值类型:Boolean

备注:如果函数执行成功,将返回true,否则返回false。具有SYSADMIN权限的用户,后端线程所连接的数据库的属主,后端线程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。若执行该函数后未成功终止目标会话,则会强制关闭该会话和客户端的socket连接。

该函数可终止非线程池的线程、活跃状态的线程池线程,但无法终止非活跃状态的线程池线程。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT pid from pg_stat_activity;
       pid       
-----------------
 140657876268816
(1 rows)

gaussdb=# SELECT pg_terminate_backend(140657876268816);
 pg_terminate_backend 
----------------------
 t
(1 row)

gs_cancel_invalid_gtm_query(cstring)

描述:断开与指定地址的GTM连接的所有会话。函数参数为逗号分隔的字符串,分隔后的每个子串格式为IP[:port](中括号表示可选)。

返回值类型:void

备注:仅系统管理员有权限执行该函数。该函数仅由CM组件在特定流程中自动调用,不建议用户手动进行调用。

terminate_session_has_temp_file()

描述:中断所有正在打开临时文件的会话。

返回值类型:void

备注:仅系统管理员有权限执行该函数。该函数仅由CM组件在特定流程中自动调用,不建议用户手动进行调用。

相关文档