1、实验环境说明
1.1 操作系统
1. # cat /etc/issue
1) CentOS release 5.5 (Final)
2) Kernel \r on an \m
2. # uname -a
1) Linux pgpool 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
1.2 hostname、IP、hosts设置
pgpool eth0:192.168.100.120 --pgpool-II
db1 eth0:192.168.100.121 --The first PostgreSQL database cluster
db2 eth0:192.168.100.122 --The second PostgreSQL database cluster
db3 eth0:192.168.100.124 --The third PostgreSQL database cluster
3. # cat /etc/hosts
1) # Do not remove the following line, or various programs
2) # that require network functionality will fail.
3) 127.0.0.1 localhost
4) #::1 localhost6.localdomain6 localhost6
5) 192.168.100.120 pgpool
6) 192.168.100.121 db1
7) 192.168.100.122 db2
8) 192.168.100.124 db3
2、安装
2.1 安装pgpool-II
下载地址:http://pgfoundry.org/projects/pgpool/
该实验使用版本:pgpool-II-3.1
安装步骤如下:
1. [root@pgpool ~]# tar –zxvf pgpool-II-3.1.tar.gz
2. [root@pgpool ~]# cd pgpool-II-3.1
3. [root@pgpool pgpool-II-3.1]# make
4. [root@pgpool pgpool-II-3.1]# make install
此时将会以默认路径安装,配置文件在/usr/local/etc/下生成。
2.2 安装PostgreSQL
该实验使用版本:postgresql-9.1.2
安装路径为默认路径:/usr/local/pgsql
在四台主机上都进行编译安装,方式如下:
1. [root@db1 ~]# useradd postgres
2. [root@db1 ~]# passwd postgres
3. [root@db1 ~]# mkdir /usr/local
4. [root@db1 ~]# su – postgres
5. [postgres@db1 ~]$ cd postgresql-9.1.2
6. [postgres@db1 postgresql-9.1.2]$ ./configure
7. [postgres@db1 postgresql-9.1.2]$ make
8. [postgres@db1 postgresql-9.1.2]$ make install
然后首先只在db1上初始化一个库/usr/local/pgsql/data:
1. [postgres@db1 ~]$ cd /usr/local/pgsql
2. [postgres@db1 ~]$ mkdir data
3. [postgres@db1 ~]$ initdb –D ./data (本文中环境变量设置过程略)
安装pgpool_regclass:
强烈推荐在需要访问的PostgreSQL中安装pgpool_regclass函数,该函数被pgpool-II内部使用。如果不安装的话,在不同的schema中处理相同的表名会出现问题(临时表不会出现问题)
1. [postgres@db1 ~]$ cd /home/postgres/pgpool-II-3.1/sql/pgpool-regclass
2. [postgres@db1 ~]$ make
3. [postgres@db1 ~]$ make install
4. [postgres@db1 ~]$ psql –f pgpool-regclass.sql template1
安装C和SQL函数(用于执行在线恢复):
1. [postgres@db1 ~]$ cd /home/postgres/pgpool-II-3.1/sql/pgpool-recovery
2. [postgres@db1 ~]$ make
3. [postgres@db1 ~]$ make install
4. [postgres@db1 ~]$ psql –f pgpool-recovery.sql template1