9.20. 系統管理函數

Table 9-44 顯示了那些可以用於查詢以及修改執行時配置參數的函數。

Table 9-44. 配置設置函數

名字返回類型描述
current_setting(setting_name) text目前設置的值
set_config(setting_name, new_value, is_local) text設置參數並返回新值

current_setting 用於以查詢形式獲取 setting_name 設置的目前數值。它和SQL命令 SHOW 是等效的。 比如:

SELECT current_setting('datestyle');

 current_setting
-----------------
 ISO, MDY
(1 row)

set_config 將參數 setting_name 設置為 new_value。如果 is_local 設置為 true,那麼新數值將只應用於目前交易。 如果您希望新的數值應用於目前會話,那麼應該使用 false。 它等效於 SQL 命令 SET。比如:

SELECT set_config('log_statement_stats','off', false);

 set_config
------------
 off
(1 row)

Table 9-45 裡顯示的函數向其它伺服器進程發送控制信號。 這些函數的使用限制為超級用戶。

Table 9-45. 後端信號函數

名字返回類型描述
pg_cancel_backend(pid) int取消一個後端的目前查詢

如果成功,這些函數返回 1,如果沒有成功則返回 0。 活躍的後端的進程 ID (pid)可以從 pg_stat_activity 視圖的 procpid 字串獲取,或者透過用 ps 命令列示伺服器上的 postgres 進程看到。

Table 9-46 裡顯示的函數幫助我們進行在線備份。 這些函數僅限超級用戶使用。

Table 9-46. 備份控制函數

名字返回類型描述
pg_start_backup(label_text) text設置執行在線備份
pg_stop_backup() text完成執行在線備份

pg_start_backup 接受一個參數,這個參數可以是任意用戶為備份定義的標籤。 (通常這是備份轉儲文件存放所在的名字。)這個函數向資料庫集群的資料目錄寫入一個備份標籤文件, 然後以文本方式返回備份的起始 WAL 偏移。(用戶不需要注意這個結果值,提供他只為了萬一需要的場合。)

pg_stop_backup 刪除 pg_start_backup 建立的標籤文件, 並且在 WAL 歸檔區裡建立一個備份歷史文件。這個歷史文件包含給予 pg_start_backup 的標籤, 備份的起始與終止 WAL 偏移量,以及備份的起始和終止時間。返回值是備份的終止 WAL 偏移 (同樣也可能沒有什麼用)。

有關正確使用這些函數的細節,參閱 Section 22.3