adminpack
提供了一些支持函数,pgAdmin 和其他管理工具会用这些函数来提供额外的功能,例如服务器日志文件的远程管理。所有这些函数默认只允许由超级用户使用,但是可以通过使用 GRANT
命令允许其他用户使用。
表 F.1 中显示的函数提供了对托管服务器上文件的写入访问权限。
(另请参阅 表 9.99 中的函数,这些函数提供只读访问权限。)
只有集簇目录中的文件才能被访问,除非用户是超级用户或具有
pg_read_server_files
或
pg_write_server_files
角色之一的权限,适用于该函数,但相对路径或绝对路径均可。
表 F.1. adminpack
Functions
函数 描述 |
---|
写入或追加到一个文本文件. |
刷新一个文件或目录到硬盘。 |
重命名一个文件。 |
移除一个文件。 |
列出 |
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
)。