更新时间:2024-09-02 GMT+08:00

服务器信号函数

服务器信号函数向其他服务器进程发送控制信号。只有系统管理员才能使用这些函数。

pg_cancel_backend(pid int)

描述:取消一个后端的当前查询。

返回值类型:boolean

备注:pg_cancel_backend向由pid标识的后端进程发送一个查询取消(SIGINT)信号。一个活动的后端进程的PID可以从pg_stat_activity视图的pid字段找到,或者在服务器上用ps列出数据库进程。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT pid FROM pg_stat_activity WHERE stmt_type ='RESET';
       pid
-----------------
 281471222065200
(1 row)

SELECT pg_cancel_backend(281471222065200);
 pg_cancel_backend
-------------------
 t
(1 row)

pg_reload_conf()

描述:服务器进程重新装载配置文件。

返回值类型:boolean

备注:pg_reload_conf给服务器发送一个SIGHUP信号,导致所有服务器进程重新装载配置文件。

示例:

1
2
3
4
5
SELECT pg_reload_conf();
 pg_reload_conf
----------------
 t
(1 row)

pg_rotate_logfile()

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

返回值类型:boolean

备注:pg_rotate_logfile通知日志文件管理器立即切换到一个新的输出文件。该函数仅在内置日志收集器运行时有效。

示例:

1
2
3
4
5
SELECT pg_rotate_logfile();
 pg_rotate_logfile
-------------------
 t
(1 row)

pg_terminate_backend(pid int)

描述:终止一个后台线程。

返回值类型:boolean

备注:如果成功,函数返回true,否则返回false。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
SELECT pid FROM pg_stat_activity;
       pid       
-----------------
 140657876268816
 140433774061312
 140433587902208
 140433656592128
 140433723717376
 140433637189376
 140433552770816
 140433481983744
 140433349310208
(9 rows)

SELECT pg_terminate_backend(140657876268816);
 pg_terminate_backend 
----------------------
 t
(1 row)

pg_wlm_jump_queue(pid int)

描述:调整任务到CN队列的最前端。

返回值类型:boolean

备注:如果成功,函数返回true,否则返回false。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT pid FROM pg_stat_activity WHERE stmt_type ='RESET';
       pid
-----------------
 281471222065200
(1 row)

SELECT pg_wlm_jump_queue(281471222065200);
 pg_wlm_jump_queue
-------------------
 t
(1 row)

gs_wlm_switch_cgroup(pid int, cgroup text)

描述:调整作业的优先级到新控制组。

返回值类型:boolean

备注:如果成功,函数返回true,否则返回false。

pg_cancel_query(queryId int)

描述:取消一个后端的当前查询。该函数8.1.2及以上版本支持。

返回值类型:boolean

备注:pg_cancel_query向由query_id标识的后端进程发送一个查询取消(SIGINT)信号。一个活动的后端进程的query_id可以从pg_stat_activity视图的query_id字段找到。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
SELECT query_id FROM pgxc_stat_activity WHERE stmt_type ='RESET';
 query_id
----------
        0
        0
(2 rows)

SELECT pg_cancel_query(0);
 pg_cancel_query
-----------------
 f
(1 row)

pgxc_cancel_query(queryId int)

描述:取消当前集群下正在执行的查询。该函数8.1.2及以上版本支持。

返回值类型:boolean

备注:如果所有节点的查询均已取消,函数返回true,否则返回false。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
SELECT query_id FROM pgxc_stat_activity WHERE stmt_type ='RESET';
 query_id
----------
        0
        0
(2 rows)

SELECT pgxc_cancel_query(0);
 pgxc_cancel_query
-------------------
 f
(1 row)

pg_terminate_query(queryId int)

描述:终止一个后端的当前查询。该函数8.1.2及以上版本支持。

返回值类型:boolean

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
SELECT query_id FROM pgxc_stat_activity WHERE stmt_type ='RESET';
 query_id
----------
        0
        0
(2 rows)

SELECT pg_terminate_query(0);
 pg_terminate_query
--------------------
 f
(1 row)

pgxc_terminate_query(queryId int)

描述:终止当前集群下正在执行的查询。该函数8.1.2及以上版本支持。

返回值类型:boolean

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT query_id FROM pgxc_stat_activity;
    query_id       
-----------------
 72339069014638631
(1 rows)

SELECT pgxc_terminate_query(72339069014638631);
 pgxc_terminate_query 
----------------------
 t
(1 row)