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