支援的版本:目前 (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 擴充功能。

另請參閱

SETSHOW

提交更正

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