設置數據庫參數最基本的方法是編輯postgresql.conf文件,該配置文件默認在節點數據目錄下。
配置文件中每一行指定一個參數。名稱和值之間的等號是可選的。空白是無意義的(除了在一個引號引用的參數值內)并且空行被忽略。井號(#)指示該行的剩余部分是一個注釋。非簡單標識符或者數字的參數值必須用單引號包圍。要在參數值里嵌入單引號,要么寫兩個單引號(首選)或者在引號前放反斜線。
以這種方式設定的參數為實例提供了默認值。除非這些設置被覆蓋,活動會話看到的就是這些設置。下面的小節描述了管理員或用戶覆蓋這些默認值的方法。
主服務器進程每次收到SIGHUP信號(最簡單的方法是從命令行運行pg_ctl reload或調用 SQL函數pg_reload_conf()來發送這個信號)后都會重新讀取這個配置文件。主服務器進程還會把這個信號傳播給所有正在運行的服務器進程,這樣現有的會話也能采用新值(要等待它們完成當前正在執行的客戶端命令之后才會發生)。另外,你可以直接向一個單一服務 器進程發送該信號。有些參數只能在服務器啟動時設置,在配置文件中對這些條目的修改將被忽略,直到下次服務器重啟。配置文件中的非法參數設置也會在SIGHUP處理過程中被忽略(但是會記錄日志)。
除postgresql.conf之外,數據目錄還包含一個文件postgresql.auto.conf,它具有和postgresql.conf相同的格式。這個文件保存了通過ALTER SYSTEM命令修改的參數設置。每當postgresql.conf被讀取時這個文件會被自動讀取,并且它的設置會以同樣的方式生效。postgresql.auto.conf中的設置會覆蓋postgresql.conf 中的設置。
如果SIGHUP信號沒有產生預期效果,那么系統表pg_file_settings 有助于對配置文件的預測試更改,或者診斷問題。