一、 我们要实现的环境是windowsxp、windows2003上安装Postgresql数据库,实现目的是两台数据库服务器进行数据库同步,即数据库同步更新、删除、插入等对数据库的操作。
二、 使用的工具是数据库版本Postgresql9.2,配置集群的工具是StackBuilder自己的可安装的Slony-Iv2.1.3-1。
三、 Slony-I实现数据库集群同步的原理简述:Slony-i是采用一主多从式集群方式,通过在主服务器和从服务器上建立同步节点,设置远程访问路径,启动监听进程(slon守护进程)进行监听,当主服务器进行了修改操作时,通过触发器触发,从进程进行异步修改来达到数据库同步。但是这种同步只能是从服务器备份主服务器,不能修改从服务器让主服务器同步。也即这种同步是单方向的。而且主、从服务器的postgres服务和slony-I服务都必须启动。
四、 先在两台机子上安装Postgresql和Slony-I,且都建立一个test的数据库。并在test库上建立需要同步的表,例如testtable,这些表必须要有主键(Slony-I只是实现某个数据库,某些设定好的表的同步更新,新建表不行)。需要多个表则建立多个。
五、详细配置步骤如下:
1.环境
Master192.168.101.128 |
Slave192.168.101.32 |
|
操作系统 |
WindowsXPSP3 |
WindowsServer2003SP1 |
Postgresql |
9.2.4 |
9.2.4 |
Slony-I |
2.1.3 |
2.1.3 |
2.实现要求
单向同步主服务器“192.168.101.128”到从服务器的“192.168.101.32”;
Master192.168.101.128
Slave192.168.101.32
数据库名
test
test
postgres
postgres
密码
123
123
3.配置步骤:
第一步:
注册服务:
在主服务器上以及从服务器上,进入%PG%/bin目录,运行“slon-regservice”;建立Slony-I服务。
第二步:
建立联通性:
在主服务器上以及从服务器上,编辑%PG%/data/pg_hba.conf,使网络中的两个数据库服务器能相互访问;
都要加上主从服务器的ip,必须保留127.0.0.1
- #IPv4localconnections:
- hostallall127.0.0.1/32md5
- hostallall192.168.101.128/32md5
- hostallall192.168.101.32/32md5
第三步:
建立主服务器脚本文件“master.script”;
注:postgrecluster为群集名,test为需要复制的数据库名,testtable为复制表名(必须在两个库先建且要有主键),node1和node2中的1,2为节点的别名,可以用别的。