2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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 節

ALTER SYSTEM 可以透過將 allow_alter_system 設定為 off 來停用,但這並非安全機制(如該引數的文件中所述)。

示例

設定 wal_level

ALTER SYSTEM SET wal_level = replica;

撤銷該操作,恢復 postgresql.conf 中的任何有效設定

ALTER SYSTEM RESET wal_level;

相容性

ALTER SYSTEM 語句是 PostgreSQL 的擴充套件。

另請參閱

SET, SHOW

提交更正

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