Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

F.1. adminpack — pgAdmin 支持工具包 #

adminpack 提供了许多支持函数,pgAdmin 和其他管理工具可以使用这些函数来提供附加功能,例如服务器日志文件的远程管理。默认情况下,只有数据库超级用户才能使用所有这些函数,但可以使用 GRANT 命令允许其他用户使用这些函数。

表 F.1 中显示的函数提供对托管服务器的机器上的文件的写访问权限。(另请参见 表 9.101 中的函数,该函数提供只读访问权限。)只有在用户是超级用户或被赋予 pg_read_server_filespg_write_server_files 角色之一的权限(根据函数的不同而定)的情况下,才能访问数据库集群目录中的文件,但允许使用相对路径或绝对路径。

表 F.1. adminpack 函数

函数

描述

pg_catalog.pg_file_write ( filename text, data text, append boolean ) → bigint

写入文本文件或追加到文本文件。

pg_catalog.pg_file_sync ( filename text ) → void

将文件或目录刷新到磁盘。

pg_catalog.pg_file_rename ( oldname text, newname text [, archivename text ] ) → boolean

重命名文件。

pg_catalog.pg_file_unlink ( filename text ) → boolean

删除文件。

pg_catalog.pg_logdir_ls () → setof record

列出 log_directory 目录中的日志文件。


pg_file_write 将指定 data 写入 filename 命名的文件中。如果 append 为 false,则文件不能已存在。如果 append 为 true,则文件可以已存在,如果存在,则追加到其中。返回写入的字节数。

pg_file_sync fsync filename 命名的指定文件或目录。如果失败(例如,指定的文件不存在),则抛出错误。请注意,data_sync_retry 对此函数无效,因此即使无法刷新数据库文件,也不会引发 PANIC 级别的错误。

pg_file_rename 重命名文件。如果 archivename 省略或为 NULL,则它只是将 oldname 重命名为 newname(后者不能已存在)。如果提供了 archivename,则它首先将 newname 重命名为 archivename(后者不能已存在),然后将 oldname 重命名为 newname。如果第二个重命名步骤失败,它将在报告错误之前尝试将 archivename 重新命名回 newname。成功时返回 true,如果源文件不存在或不可写,则返回 false;其他情况会抛出错误。

pg_file_unlink 删除指定文件。成功时返回 true,如果指定文件不存在或 unlink() 调用失败,则返回 false;其他情况会抛出错误。

pg_logdir_ls 返回 log_directory 目录中所有日志文件的开始时间戳和路径名。log_filename 参数必须具有其默认设置 (postgresql-%Y-%m-%d_%H%M%S.log) 才能使用此函数。