Postgresql 中文操作指南

F.1. adminpack — pgAdmin support toolpack #

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

Table F.1 中显示的函数提供对托管服务器的计算机上的文件的写访问权。(另请参见 Table 9.101 中的函数,它提供只读访问权。)仅当用户是超级用户或被赋予了针对函数适当的 pg_read_server_filespg_write_server_files 角色的特权时,才能访问数据库集群目录内的文件,但相对路径或绝对路径都是允许的。

Table F.1. adminpack Functions

Function

Description

pg_catalog.pg_file_write ( filename textdata textappend boolean ) → bigint 写入文本文件或在文本文件后面添加。

pg_catalog.pg_file_sync ( filename text ) → void 刷新文件或目录到磁盘。

pg_catalog.pg_file_rename ( oldname textnewname 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 重命名一个文件。如果省略或为 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_) 才能使用此函数。