天天看點

PostgreSQL修煉之道:從小工到專家. 2.4 PostgreSQL的簡單配置

<b>2.4 postgresql的簡單配置</b>

本節将簡單介紹postgresql的配置方法,更具體的配置操作會在後面的章節中介紹。postgresql資料庫的配置主要是通過修改資料目錄下的postgresql.conf檔案來實作的。

<b>2.4.1 修改監聽的ip和端口</b>

在資料目錄下編輯postgresql.conf檔案,找到如下内容:

#listen_addresses = 'localhost'         # what ip address(es) to listen on;

#port = 5432                            # (change requires

restart)

其中,參數“listen_addresses”表示監聽的ip位址,預設是在“localhost”處監聽,也就是“127.0.0.1”的ip位址上監聽,這會讓遠端的主機無法登入這台資料庫,如果想從其他的機器上登入這台資料庫,需要把監聽位址改成實際網絡的位址,一種簡單的方法是,把這個位址改成“*”,表示在本地的所有位址上監聽。

參數“port”表示監聽的資料庫端口,預設為“5432”,可以不更改。如果一台機器上安裝了幾個資料庫執行個體(如安裝了幾個不同版本的postgresql),可以設定為不同的端口。

修改了這兩個參數後,需要重新開機資料庫才能生效。

<b>2.4.2 與資料庫log相關的參數</b>

來看看與log相關的幾個參數:

日志的收集一般是要打開的,是以需要設定:

logging_collector = on

日志的目錄一般使用預設值就可以了:

log_directory = 'pg_log'

日志的切換和是否選擇覆寫則可以使用如下幾種方案。

方案一:每天生成一個新的日志檔案。

配置方法如下:

log_filename =

'postgresql-%y-%m-%d_%h%m%s.log'

log_truncate_on_rotation = off

log_rotation_age = 1d

log_rotation_size = 0

方案二:每當日志寫滿一定的大小(如10mb空間),則切換一個日志。

log_rotation_age = 0

log_rotation_size = 10m

方案三:隻保留7天的日志,進行循環覆寫。

log_filename = 'postgresql-%a.log'                                        #

log_truncate_on_rotation = on

<b>2.4.3 記憶體參數的設定</b>

postgresql安裝完畢後,可以修改以下兩個主要記憶體參數。

shared_buffers:共享記憶體的大小,主要用于共享資料塊。

work_mem:單個sql執行時,排序、hash

join所使用的記憶體,sql運作完後,記憶體就釋放了。

shared_buffers預設值為32mb,work_mem為1mb,如果你的機器上有足夠的記憶體,可以把這個參數改得大一些,這樣資料庫就可以緩存更多的資料塊,當讀取資料時,就可以從共享記憶體中讀,而不需要再從檔案上去讀取。

work_mem設定大一些,會讓排序操作快一些。