跳到主要内容
版本:Next

adminpack

adminpack 提供了一些支持函数,例如服务器日志文件的远程管理。所有这些函数默认只允许由超级用户使用,但是可以通过使用 GRANT 命令允许其他用户使用。

表 C.1中展示的函数提供了文件写入的功能。对于这些函数,只有位于数据库群集目录中的文件才能被访问,允许使用相对路径和绝对路径。

表 C.1. adminpack Functions

函数/描述
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 为假,文件不能已经存在。如果 append 为真,该文件可能已经存在,存在就会被追加。这个函数返回写入的字节数。

pg_file_sync fsyncs由filename命名的指定的文件或目录。在失败时会出现错误 (例如:指定的文件不存在)。注意 data_sync_retry 对此函数没有影响,因此在刷新数据库文件失败的时候不会引发PANIC-级别的错误。

pg_file_rename重命名一个文件。如果 archivename被省略或者为 NULL,它简单地把 oldname重命名为newname(不能已经存在)。如果提供了archivename,该函数首先把newname重命名为archivename(不 能已经存在),然后把oldname重命名为 newname。当第二次重命名失败时,这个函数会在报告错误之前尝试把archivename重命名成 newname。成功时函数返回真,如果源文件不存在或者不可写,则返回假,其他情况下会抛出错误。

pg_file_unlink移除指定的文件。成功时函数返回真,如果指定的文件不存在或者unlink()调用失败,则返回假,其他情况下会抛出错误。

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