PostgreSQL(五)系統引數配置

2021-08-10 14:20:02 字數 2541 閱讀 1818

引數名稱大小寫不敏感,引數主要有5種型別: boolean, string, integer, floating point,enumerated (enum). 

配置檔案路徑:

/usr/local/pgsql/data/postgresql.conf

/usr/local/pgsql/data/postgresql.auto.conf

伺服器啟動時預設讀取的配置檔案為 postgresql.conf。

【alter system】

alter system 可動態修改引數,修改記錄檔案為 postgresql.auto.conf ,該檔案不可手動編輯,且會覆蓋 postgresql.conf 中的引數值,即系統首選postgresql.auto.conf中的設定。

#動態配置命令

alter system set configuration_parameter

alter system reset configuration_parameter

alter system reset all

alter system 將引數設定為 default 或 reset 時,引數將被移除。重新設定後需過載(pg_ctl reload 或 pg_reload_conf())配置檔案才生效,或重啟系統服務。

[postgres@hzc ~]$ pg_ctl reload -d /usr/local/pgsql/data

postgres=# pg_reload_conf()

【alter database】資料庫級別的配置影響單個資料庫。重新連線或重新整理會話時生效。

alter database name set configuration_parameter

alter database name set configuration_parameter from current

alter database name reset configuration_parameter

alter database name reset all

【alter role】角色或資料庫級別配置。重新連線或重新整理會話時生效。

alter role [ in database database_name ] set configuration_parameter

alter role [ in database database_name ] set configuration_parameter from current

alter role [ in database database_name ] reset configuration_parameter

alter role [ in database database_name ] reset all

【show / set】影響當前會話級別。可檢視當前連線的引數和重新設定引數。

show name

show all

set [ session | local ] configuration_parameter

set [ session | local ] time zone

#檢視當前引數值

select name,setting,vartype,boot_val,min_val,max_val,reset_val from pg_settings;

示例:show datestyle;

show all;

select * from pg_timezone_names where abbrev='+08';

set time zone 'europe/rome';

set time zone 'etc/gmt-8';

select now();

select name,setting,vartype,boot_val,min_val,max_val,reset_val from pg_settings where name='enable_sort';

update pg_settings set setting = 'off' where name = 'enable_sort';

select set_config('enable_sort', 'on', true); --true:當前事務級別

select set_config('enable_sort', 'off', false);--false:當前會話級別

set enable_sort to default;

其他引數特殊設定方法參考:

postgresql 像其他資料庫一樣,如果不限制使用系統資源,系統資源可能將被耗盡。postgresql 要求作業系統提供程序間通訊(ipc)的特性,尤其共享記憶體和訊號。unix派生系統都會有提供「system v」或「posix」 ipc。postgresql 啟動時,一般會分配比較小的共享記憶體和大量的posix(mmap)共享記憶體。postgresql 執行受作業系統system v ipc 限制,如果超出/低於系統的限制,則服務將拒絕啟動,輸出相關錯誤資訊。

managing kernel resources :

管理核心資源 :

Postgresql日誌系統的實現(五)

1.3.1 3 xlog 其他資訊 資源資料結構 在xlog internal.h中定義了乙個結構體,resource manager可以呼叫某種資源 rmgrdata代表的資源 的某個方法 redo,undo等 這裡的資源可以簡單的理解成pg中存在這些 在pg執行時,系統中就生成了這些可利用的資源...

postgresql 核心開發之系統引數增加(下)

上篇介紹了怎麼加乙個常規引數,同時也留下了乙個問題,如何加乙個奇葩引數設定功能,使任意乙個session設定引數值,全域性所有連線立即生效。如何實現呢?我們來分析下。如果要使當前session生效,直接設定即可,它能直接讀寫當前程序的引數值。那其它的session呢?首先我們明確乙個問題,資料庫一旦...

postgresql引數調整

max connections 512 允許客戶端連線的最大數目 fsync off 強制把資料同步更新到磁碟 shared buffers 30g 決定有多少記憶體可以被postgresql用於快取資料 推薦記憶體的1 4 work mem 16m 使內部排序和一些複雜的查詢都在這個buffer中...