pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
表 9.44展示了那些可以用于查询以及修改运行时配置参数的函数。
表 9.44. 配置设定函数
| Name | Return Type | 描述 |
|---|---|---|
|
text |
获取设置的当前值 |
|
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)
表 9.45中展示的函数向其他服务器进程发送控制信号。这些函数仅限超级用户使用。
表 9.45. 服务器信号函数
| Name | Return Type | 描述 |
|---|---|---|
|
boolean |
取消后端的当前查询 |
|
boolean |
使服务器进程重新加载配置文件 |
|
boolean |
轮转服务器日志文件 |
这些函数在成功时都返回 true,否则返回 false。
pg_cancel_backend向由进程 ID 标识的后端进程发送一个查询取消(SIGINT)信号。活动后端的进程 ID 可以从pg_stat_activity视图的procpid列中找到,或者通过用ps列出服务器上的postgres进程得到。
pg_reload_conf 向postmaster发送 SIGHUP 信号,使所有服务器进程重新加载配置文件。
pg_rotate_logfile 向日志文件管理器发送信号,使其立即切换到新的输出文件。只有使用redirect_stderr进行日志记录时才有效,否则不存在日志文件管理器子进程。
表 9.46中列出的函数有助于进行在线备份。这些函数仅限超级用户使用。
表 9.46. 备份控制函数
| Name | Return Type | 描述 |
|---|---|---|
|
text |
准备执行在线备份 |
|
text |
结束在线备份 |
pg_start_backup接受单个参数,它是一个任意的用户自定义备份标签。(通常是备份转储文件将要保存的名称。)该函数把一个备份标签文件写入数据库集簇的数据目录,然后以文本形式返回备份的起始 WAL 偏移。(用户不必关注这个结果值,但提供它只是以防它有用。)
pg_stop_backup 删除 pg_start_backup 创建的标签文件,并在 WAL 归档区域创建一个备份历史文件。历史文件包括传给 pg_start_backup 的标签、备份的起止 WAL 偏移以及备份的起止时间。返回值是备份的结束 WAL 偏移(同样可以忽略)。
有关正确使用这些函数的详细信息,参见第 23.3 节。
表 9.47中的函数计算数据库对象的磁盘空间用量。
表 9.47. 数据库对象尺寸函数
| Name | Return Type | 描述 |
|---|---|---|
pg_column_size(any) |
int |
存储某个值所使用的字节数(可能已压缩) |
|
bigint |
指定 OID 的表空间占用的磁盘空间 |
|
bigint |
指定名称的表空间占用的磁盘空间 |
|
bigint |
指定 OID 的数据库占用的磁盘空间 |
|
bigint |
指定名称的数据库占用的磁盘空间 |
|
bigint |
指定 OID 的表或索引占用的磁盘空间 |
|
bigint |
指定名称的表或索引占用的磁盘空间。表名可以用模式名限定 |
|
bigint |
指定 OID 的表占用的磁盘空间总量,包括索引和 TOAST 数据 |
|
bigint |
指定名称的表占用的磁盘空间总量,包括索引和 TOAST 数据。表名可以用模式名限定 |
|
text |
将以 64 位整数表示的字节大小转换为带有大小单位的人类可读格式 |
pg_column_size 显示存储任意单个数据值所用的空间。
pg_total_relation_size接受表或 TOAST 表的 OID 或名称,返回数据及所有关联索引和 TOAST 表的字节大小。
pg_tablespace_size和pg_database_size接受表空间或数据库的 OID 或名称,并返回其中占用的磁盘总空间。
pg_relation_size接受表、索引或 TOAST 表的 OID 或名称,并以字节为单位返回大小。
pg_size_pretty 可以将其他函数的结果格式化为便于阅读的形式,适当地使用 kB、MB、GB 或 TB 单位。
表 9.48中展示的函数提供对数据库服务器所在机器上文件的本地访问。只能访问数据库集簇目录和log_directory中的文件。集簇目录中的文件使用相对路径,日志文件使用与log_directory配置设置相匹配的路径。这些函数仅限超级用户使用。
表 9.48. 通用文件访问函数
| Name | Return Type | 描述 |
|---|---|---|
|
setof text |
列出目录内容。 |
|
text |
返回文本文件的内容。 |
|
record |
返回文件信息。 |
pg_ls_dir 返回指定目录中的所有名称,但不包括特殊项“.”和“..”。
pg_read_file从给定的offset开始返回文本文件的一部分,最多返回length字节(如果先到达文件末尾,则返回更少的字节)。如果offset为负,则它相对于文件末尾。
pg_stat_file返回一条记录,包含文件大小、最后访问时间戳、最后修改时间戳、最后文件状态更改时间戳(仅限 Unix 平台)、文件创建时间戳(仅限 Windows),以及一个boolean值,表示它是否是目录。典型用法包括:
SELECT * FROM pg_stat_file('filename');
SELECT (pg_stat_file('filename')).modification;
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。