1. 程式人生 > >【PostgreSQL-9.6.3】使用pg_settings表查看參數的生效條件

【PostgreSQL-9.6.3】使用pg_settings表查看參數的生效條件

intern name 數據庫 查看 context 影響 pre 無需重啟 per

PostgreSQL數據庫的配置參數都在postgresql.conf文件中,此文件的目錄為數據庫的數據目錄($PGDATA)。這些參數有些是直接修改就可以生效,有些需要重啟數據庫才能生效,而有些根本就不能修改。PG數據庫把這些參數分為以下幾類:

internal:這類參數為只讀參數。有的是postgres程序寫死的,有些是在安裝數據庫時intdb時設置好的。

postmaster:這類參數需要重啟數據庫才能生效。

sighup:不需要重啟數據庫,但要向postmaster進程發送sighup信號,即需要pg_ctl reload命令。

backend:無需重啟數據庫,只需向postmaster進程發送sighup信號。但新的配置值只能在之後的新連接中生效,已有連接中這些參數值不會改變。

superuser:這類參數可以由超級用戶使用set修改。參數設置後只會影響超級用戶自身的session配置,不會影響其他用戶。

user:普通用戶使用set設置,這類參數修改後和superuser類參數一樣,也是只影響自身session。

我們可以通過查詢pg_settings表的context字段值來查看參數是否需要重啟數據庫生效。如下:

test=# select name,context from pg_settings where name like wal_level;
   name    |  context   
-----------+------------
wal_level | postmaster (1 row)

The End!

2017-09-02

【PostgreSQL-9.6.3】使用pg_settings表查看參數的生效條件