9.20. 系统管理函数

Table 9-44 显示了那些可以用于查询以及修改运行时配置参数的函数。

Table 9-44. 配置设置函数

名字返回类型描述
current_setting(setting_name) text当前设置的值
set_config(setting_name, new_value, is_local) text设置参数并返回新值

current_setting 用于以查询形式获取 setting_name 设置的当前数值。它和SQL命令 SHOW 是等效的。 比如:

SELECT current_setting('datestyle');

 current_setting
-----------------
 ISO, MDY
(1 row)

set_config 将参数 setting_name 设置为 new_value。如果 is_local 设置为 true,那么新数值将只应用于当前事务。 如果你希望新的数值应用于当前会话,那么应该使用 false。 它等效于 SQL 命令 SET。比如:

SELECT set_config('log_statement_stats','off', false);

 set_config
------------
 off
(1 row)

Table 9-45 里显示的函数向其它服务器进程发送控制信号。 这些函数的使用限制为超级用户。

Table 9-45. 后端信号函数

名字返回类型描述
pg_cancel_backend(pid) int取消一个后端的当前查询

如果成功,这些函数返回 1,如果没有成功则返回 0。 活跃的后端的进程 ID (pid)可以从 pg_stat_activity 视图的 procpid 字段获取,或者通过用 ps 命令列示服务器上的 postgres 进程看到。

Table 9-46 里显示的函数帮助我们进行在线备份。 这些函数仅限超级用户使用。

Table 9-46. 备份控制函数

名字返回类型描述
pg_start_backup(label_text) text设置执行在线备份
pg_stop_backup() text完成执行在线备份

pg_start_backup 接受一个参数,这个参数可以是任意用户为备份定义的标签。 (通常这是备份转储文件存放所在的名字。)这个函数向数据库集群的数据目录写入一个备份标签文件, 然后以文本方式返回备份的起始 WAL 偏移。(用户不需要注意这个结果值,提供他只为了万一需要的场合。)

pg_stop_backup 删除 pg_start_backup 创建的标签文件, 并且在 WAL 归档区里创建一个备份历史文件。这个历史文件包含给予 pg_start_backup 的标签, 备份的起始与终止 WAL 偏移量,以及备份的起始和终止时间。返回值是备份的终止 WAL 偏移 (同样也可能没有什么用)。

有关正确使用这些函数的细节,参阅 Section 22.3