支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4

ALTER SYSTEM

ALTER SYSTEM — 變更伺服器組態參數

概要

ALTER SYSTEM SET configuration_parameter { TO | = } { value [, ...] | DEFAULT }

ALTER SYSTEM RESET configuration_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_directoryallow_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 延伸功能。

參見

SET, SHOW

提交更正

如果您在文件中發現任何不正確、與您特定功能的經驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。