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