PostgreSQL adminpack

2021-09-16 15:22 更新

adminpack 提供了一些支持函數(shù),pgAdmin 和其他管理工具會(huì)用這些函數(shù)來提供額外的功能,例如服務(wù)器日志文件的遠(yuǎn)程管理。所有這些函數(shù)默認(rèn)只允許由超級(jí)用戶使用,但是可以通過使用 GRANT 命令允許其他用戶使用。

本文的表 F.1中展示的函數(shù)提供了向運(yùn)行 著服務(wù)器的機(jī)器上的文件進(jìn)行寫入的途徑(另見 表 9.95中的函數(shù),它們提供了 只讀的訪問途徑)。對(duì)于這些函數(shù),只有位于數(shù)據(jù)庫集簇目錄中的文件才能被訪問(除非用戶是一個(gè)超級(jí)用戶或者被指定了 pg_read_server_files 或者 pg_write_server_files 角色之一),不過允許使用相對(duì)路徑和絕對(duì)路徑。

表 F.1. adminpack Functions

函數(shù)

描述

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

寫入或追加到一個(gè)文本文件.

pg_catalog.pg_file_sync ( filename text ) → void

刷新一個(gè)文件或目錄到硬盤。

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

重命名一個(gè)文件。

pg_catalog.pg_file_unlink ( filename text ) → boolean

移除一個(gè)文件。

pg_catalog.pg_logdir_ls () → setof record

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


pg_file_write 把指定的 data 寫入到由 filename 命名的文件中。如果 append 為假,文件不能已經(jīng)存在。如果 append 為真,該文件 可能已經(jīng)存在,并且如果存在就會(huì)被追加。這個(gè)函數(shù)返回寫入的字節(jié)數(shù)。

pg_file_sync fsyncs由filename命名的指定的文件或目錄。 在失敗時(shí)會(huì)出現(xiàn)錯(cuò)誤 (例如:指定的文件不存在)。 注意 data_sync_retry 對(duì)此函數(shù)沒有影響,因此在刷新數(shù)據(jù)庫文件失敗的時(shí)候不會(huì)引發(fā)PANIC-級(jí)別的錯(cuò)誤。

pg_file_rename重命名一個(gè)文件。如果 archivename被省略或者為 NULL,它簡(jiǎn)單地把 oldname重命名為newname(不能 已經(jīng)存在)。如果提供了archivename,該函數(shù)首先把 newname 重命名為archivename(不 能已經(jīng)存在),然后把oldname重命名為 newname。當(dāng)?shù)诙沃孛r(shí),這個(gè)函數(shù)會(huì)在報(bào)告 錯(cuò)誤之前嘗試把archivename重命名成 newname 。成功時(shí)函數(shù)返回真,如果源文件不存在或者 不可寫則返回假,其他情況下會(huì)拋出錯(cuò)誤。

pg_file_unlink移除指定的文件。成功時(shí)函數(shù)返回真, 如果指定的文件不存在或者unlink()調(diào)用失敗則返回 假,其他情況下會(huì)拋出錯(cuò)誤。

pg_logdir_ls返回log_directory 目錄中所有日志文件的開始時(shí)間戳以及路徑名。要使用這個(gè)函數(shù), log_filename參數(shù)必須具有其默認(rèn)設(shè)置( postgresql-%Y-%m-%d_%H%M%S.log)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)