文章目录
  1. 1. 安装pgpool-ii
  2. 2. 安装postgresql9.1
  3. 3. 配置pgsql
  4. 4. 配置pgpool
  5. 5. 测试配置

昨晚看过pgpool的介绍后很想试试这个牛叉的东东,所以就有了今天的这么一番折腾。

安装pgpool-ii

由于我的系统是ubuntu 11.10所以就直接通过apt-get来快速安装pgpool。

1
sudo apt-get install pgpool2

安装postgresql9.1

这次我准备了三台虚拟机来安装postgresql9.1,ip分别是172.16.44.54,172.16.44.101,172.16.44.124,环境全部都是ubuntu11.10。

1
sudo apt-get install postgresql

配置pgsql

修改/etc/postgresql/9.1/main/postgresql.conf,找到如下代码:

1
#listen_addresses = 'localhost'

并修改为:

1
listen_addresses = '*'

修改/etc/postgresql/9.1/main/pg_hba.conf,找到如下代码:

1
host   all     all   127.0.0.1/32    md5

并修改为:

1
host   all     all   172.16.44.0/24  trust

上述修改可以开启postgresql的远程访问,并将认证方式设为trust。trust模式无需密码就可以直接连接管理。当时就是因为md5导致pgpool提示不能访问。

配置pgpool

打开/etc/pgpool2/pgpool.conf,找到如下代码:

1
2
replication_mode = false
load_balance_mode = false

修改为:

1
2
replication_mode = true
load_balance_mode = true

replication_mode是打开复制模式,load_balance_mode可以将select查询按权重分发到后端的postgresql上。

继续在文件里面添加如下内容:

1
2
3
4
5
6
7
8
9
backend_hostname0 = '54'
backend_port0 = 5432
backend_weight0 = 1
backend_hostname1 = '172.16.44.101'
backend_port1 = 5432
backend_weight1 = 1
backend_hostname2 = '172.16.44.124'
backend_port2 = 5432
backend_weight2 = 1

将三台后端的postgresql添加到pgpool中。

重启pgpool和三台postgresql。

1
2
sudo /etc/init.d/pgpool2 restart
sudo /etc/init.d/postgresql restart

测试配置

1
2
createdb -U postgres -p 5433 -h localhost -O postgres testdb
/usr/lib/postgresql/9.1/bin/pgbench -i -U postgres -p 5433 testdb

通过createdb新建一个数据库,并通过pgbench生成测试数据。然后就可以通过连接单独的postgresql查看数据库和对应的测试数据是否生成。如果三台postgresql都有一样的数据,那就说明配置已经正常了。

文章目录
  1. 1. 安装pgpool-ii
  2. 2. 安装postgresql9.1
  3. 3. 配置pgsql
  4. 4. 配置pgpool
  5. 5. 测试配置