postgresql修改配置生效方法


PostgreSQL查看及設置參數、單位、描述等信息

查看參數的默認單位

select name, unit from pg_settings;

  

查看參數允許的枚舉

select name, enumvals from pg_settings;

  

設置參數

方式一:在 postgresql.conf設置

方式二:在啟動時傳遞參數:postgres -c log_connections=yes -c log_destination=’syslog’

 

在 psql 里查看及設置參數

查看:show postgresql.conf中的參數名;
設置:set postgresql.conf中的參數名 TO 參數值 | set postgresql.conf中的參數名=參數值

  

對於配置服務器,,太多時候我們在Linux中做的操作是,配置*.conf文件,然后重啟服務。而很多服務都具有reload功能,而但是具體到某個配置,有時候直接說出需不需要重啟服務而使得配置生效,這並不是一件容易的事情。

但是,postgresql卻講這部分能用在數據表中顯式的告訴了我們:

postgres# select name, context from pg_settings;

 

name context
archive_command

sihup

archive_mode postmaster
block_size internal
log_connections backend
log_min_duration_statement superuser
search_patch user

 

  • internal: 編譯期間的設置,只有重新編譯才能生效。

  • postmaster: 只有服務重啟才能生效。

  • sighup: 給服務器發送HUP信號會是服務器重新加載postgresql.conf配置,可以立即生效。

  • backend: 與sighup類似,但是不影響正在運行的會話,只在新會話中生效

  • superuser: 使用superuser(如postgres)才能更改,不用重新加載所有配置即可生效。

  • user: 單個會話用戶可以在任意時間做修改,只會影響該會話。

 

重新加載數據庫配置的方法有三種:

1. 用超級用戶運行

postgres=# SELECT pg_reload_conf();


2. 用UNIX的kill手動發起HUP信號

$kill -HUP PID

 

3.使用pg_ctl命令觸發SIGHUP信號

$pg_ctl reload

 

http://blog.51cto.com/geekbin/1398671


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM