postgresql pgpool搭建及高可用簡單配置

pgpool安裝配置

安裝環境:

系統debian-6.0.4

數據庫:postgresql-9.3

pgpool:pgpool-II-3.3.1


pgpool機器

pgpool ip:172.16.2.150

pgpool ip:172.16.2.151


兩臺流複製機器

Mast:172.16.2.151

slave:172.16.2.152

中文手冊:http://www.pgpool.net/docs/latest/pgpool-zh_cn.html

#########################################################################################

安裝postgresql-9.3

vi /etc/apt/sources.list.d/pgdg.list

deb http://apt.postgresql.org/pub/repos/apt/ squeeze-pgdg main


vi /etc/apt/sources.list

deb-src http://ftp.debian.org/debian/ squeeze-updates main

deb http://ftp.tw.debian.org/debian wheezy main


wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

apt-get update

過程中會報錯

W: There is no public key available for the following key IDs:

8B48AD6246925553

解決: gpg --keyserver subkeys.pgp.net --recv 8B48AD6246925553

gpg --export --armor 8B48AD6246925553 | apt-key add -


apt-get update


aptitude install postgresql-9.3

#########################################################################################

安裝pgpool-II-3.3.1

安裝編譯環境

aptitude install build-essential

tar -zxvf pgpool-II-3.3.1.tar.gz

cd pgpool-II-3.3.1

./configure

make

make install

#########################################################################################

編譯過程中會報沒有postgresql-server-dev-X.Y錯誤

aptitude install flex

aptitude install postgresql-server-dev-9.3

aptitude install postgresql-contrib-9.3

#########################################################################################

master配置

vi /etc/postgresql/9.3/main/postgresql.conf

listen_addresses = '*'

vi /etc/postgresql/9.3/main/pg_hba.conf 加入以下

host all all 127.0.0.1/32 trust

host all all 172.16.2.0/32 trust

host all all 172.16.2.152/32 trust

host all all 172.16.2.151/32 trust

host all all 172.16.2.150/32 trust


cp /usr/local/etc/pgpool.conf.sample /usr/local/etc/pgpool.conf

cd /usr/local/etc

vi pgpool.conf

修改如下

listen_addresses = '*'

parallel_mode = off

load_balance_mode = on

socket_dir = '/var/run/postgresql'

pcp_socket_dir = '/var/run/postgresql'

pid_file_name = '/var/run/postgresql/pgpool.pid'


backend_hostname0 = '172.16.2.151'

backend_port0 = 5432

backend_weight0 = 9

backend_data_directory0 = '/var/lib/postgresql/9.3/main/'


backend_hostname1 = '172.16.2.152'

backend_port1 = 5432

backend_weight1 = 9

backend_data_directory1 = '/var/lib/postgresql/9.3/main/'

backend_flag1 = 'ALLOW_TO_FAILOVER'

#########################################################################################

cp pool_hba.conf.sample pool_hba.conf

vi pool_hba.conf

# IPv4 local connections:

host all all 127.0.0.1/32 trust

host all all 172.16.2.0/32 trust

host all all 172.16.2.152/32 trust

host all all 172.16.2.151/32 trust

host all all 172.16.2.150/32 trust

#########################################################################################

su postgres

createuser -p 5432 pgpool

createdb -p 5432 -O pgpool pgpool


cp pcp.conf.sample pcp.conf

/usr/local/bin/pg_md5 postgres

vi pcp.conf

加入如下:

postgres:e8a48653851e28c69d0506508fb27fc5

#########################################################################################

pgpool看門狗配置

172.16.2.150上的配置採用心跳模式(查詢模式則註釋掉)

vi pgpool.conf

需要修改的地方如下

use_watchdog = on

trusted_servers = '172.16.2.151,172.16.2.152'

wd_hostname = '172.16.2.150'


# - Virtual IP control Setting -

delegate_IP = '172.16.2.153'(虛擬ip,也就是兩臺pgpool對外的ip地址)


# -- heartbeat mode --

heartbeat_destination0 = '172.16.2.150'

heartbeat_destination1 = '172.16.2.151'


# -- query mode --

此模式下注釋掉


# - Other pgpool Connection Settings -

other_pgpool_hostname1 = '172.16.2.151'(指定需要監控的 pgpool-II 服務器主機)

other_wd_port1 = 9000


172.16.2.151上配置同樣採用心跳模式

需要修改的地方如下

vi pgpool.conf

use_watchdog = on

trusted_servers = '172.16.2.151,172.16.2.152'

wd_hostname = '172.16.2.151'


# - Virtual IP control Setting -

delegate_IP = '172.16.2.153'(虛擬ip,也就是兩臺pgpool對外的ip地址)


# -- heartbeat mode --

heartbeat_destination0 = '172.16.2.150'

heartbeat_destination1 = '172.16.2.151'


# -- query mode --

此模式下注釋掉

# - Other pgpool Connection Settings -

other_pgpool_hostname0 = '172.16.2.150'(指定需要監控的 pgpool-II 服務器主機)

other_wd_port0 = 9000

#########################################################################################

啓動pgpool

在此過程中先啓動的則會成爲主,另一臺作爲備機啓動沒有先後順序

/usr/local/bin/pgpool -dn -f /usr/local/etc/pgpool.conf -a /usr/local/etc/pool_hba.conf -F /usr/local/etc/pcp.conf


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章