ALTER SYSTEM — 變更伺服器組態參數
ALTER SYSTEM SETconfiguration_parameter
{ TO | = } {value
[, ...] | DEFAULT } ALTER SYSTEM RESETconfiguration_parameter
ALTER SYSTEM RESET ALL
ALTER SYSTEM
用於變更整個資料庫叢集的伺服器組態參數。它比傳統的手動編輯 postgresql.conf
檔案的方法更方便。ALTER SYSTEM
將給定的參數設定寫入 postgresql.auto.conf
檔案,該檔案除了 postgresql.conf
之外也會被讀取。將參數設定為 DEFAULT
,或使用 RESET
變體,會從 postgresql.auto.conf
檔案中移除該組態項目。使用 RESET ALL
移除所有此類組態項目。
使用 ALTER SYSTEM
設定的值將在下次伺服器組態重新載入後生效,或者在只能在伺服器啟動時變更的參數的情況下,在下次伺服器重新啟動後生效。可以透過呼叫 SQL 函數 pg_reload_conf()
、執行 pg_ctl reload
或將 SIGHUP 訊號傳送到主伺服器程序來命令伺服器組態重新載入。
只有超級使用者和被授予參數 ALTER SYSTEM
權限的使用者才能使用 ALTER SYSTEM
變更參數。此外,由於此指令直接作用於檔案系統且無法復原,因此不允許在交易區塊或函數內部使用。
configuration_parameter
可設定的組態參數名稱。可用的參數記錄在第 19 章中。
value
參數的新值。可以將值指定為字串常數、識別符號、數字或以逗號分隔的這些清單,這適用於特定參數。既不是數字也不是有效識別符號的值必須用引號引起來。可以寫入 DEFAULT
,以指定從 postgresql.auto.conf
中移除參數及其值。
對於某些接受清單的參數,帶引號的值將產生雙引號的輸出,以保留空格和逗號;對於其他參數,必須在單引號字串內使用雙引號才能達到此效果。
此指令不能用於設定 data_directory、allow_alter_system,以及 postgresql.conf
中不允許的參數(例如,預設選項)。
有關設定參數的其他方法,請參閱第 19.1 節。
可以透過將 allow_alter_system 設定為 off
來停用 ALTER SYSTEM
,但這不是一種安全機制(如該參數的文件中詳細解釋的)。
設定 wal_level
ALTER SYSTEM SET wal_level = replica;
取消該設定,恢復在 postgresql.conf
中有效的任何設定
ALTER SYSTEM RESET wal_level;
ALTER SYSTEM
陳述式是 PostgreSQL 擴充功能。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單回報文件問題。