postgresql更改配置生效問題


補充:如何確定psql配置文件的路徑

①切換至psql用戶,此處為thunisoft。

    ②確定路徑方法很多,此處介紹常用的幾種。

<1>ps –ef  |grep base 輸出結果中 –D后幾位數據目錄。

 

 

      <2>切換中thunisoft用戶后默認在thunisoft的家目錄/home/thunisoft下。使用公司提供的安裝包,自動安裝psql時會在家目錄下自動生成啟動或停止腳本。

 

    使用命令 more startup.sh或stop.sh。就可看到如下內容。其中-D指明了數據目錄。

 

    <3>第三種一步到位的方法:直接使用工具連接數據庫執行。可以看到sourcefile對應了兩個不同的配置文件。分別是postgresql.conf和postgresql.auto.conf,后者優先級更高。在更改配置前需要在數據庫總先確認其對應的配置文件是哪一個。例如我們自動安裝的abase會有postgresql.auto.conf,而max_connections就在此配置。

 

一:如何使修改的配置項生效?

1、在查看postgresql.conf配置文件可以看到,port配置后有# (change requires restart),代表使用重載配置並不能使配置生效,需要重啟數據庫。

 

那么是否所有的配置都需要重啟才生效?該如何確定何種操作才能使配置生效?

 

2、配置如何生效在pg_settings中可以查找,context共有七個不同字段分別如下。

 

context

操作

backend  

 可以在postgresql.conf中對這些設置進行更改,而無需重新啟動服務器。 但新的配置值只會出現在這之后的連接中,在已有的連接中,這些值不會改變。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

user 

該類參數表示,普通用戶可以通過set命令來更改參數的配置值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

internal 

該類參數是內部參數,也就是說,不可以進行修改,除非重新initdb。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

postmaster 

該類參數更改配置項后,需要重啟PostgreSQL實例才能生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

superuser 

該類參數可以由超級用戶來改變,改變時,只會影響到自身的session,不會影響到其他的用戶。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

sighup 

在postgresql.conf配置文件中更改這種類型的參數無須重啟實例,只需要向postmaster進程發送一 個SIGHUP信號,讓其重新讀取配置文件即可。postmaster進程收到信號后,也會向其他子進程發送SIGHUP信號, 讓新的參數值在其他子進程中也生效。該類參數區別於backend類參數。                                                                                                                                                                                                                                                                                                                                                                               

superuser-backend

 該類參數可以由超級用戶來改變,可以在postgresql.conf中對這些設置進行更改,而無需 重新啟動服務器。但新的配置值只會出現在這之后的連接中,在已有的連接中,這些值不會改變。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

 

 

 

 

補充:

1、sighup即不重啟服務器直接重載配置即可,重載配置的方法如下

①執行命令:pg_ctl reload [-D DATADIRT]

②在數據庫中使用sql:select pg_reload_conf();

2、postmaster。需要重啟數據庫。

例如修改max_connections(最大連接數)

 


免責聲明!

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



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