欢迎来到天天文库
浏览记录
ID:37924367
大小:158.50 KB
页数:12页
时间:2019-06-02
《Postgresql通过Slony-I 实现数据库同步备份》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows下Postgresql数据库通过Slony-I实现数据库同步备份一. 我们要实现的环境是windowsxp、windows7、windows2003或windows2008上安装Postgresql数据库,实现目的是多台数据库服务器进行数据库同步,即数据库同步更新、删除、插入等对数据库的操作。二. 使用的工具是数据库版本Postgresql8.4,配置集群的工具是StackBuilder自己的可安装的Slony-Iv2.0.4-1或者edb_slony_i_pg84.三. Slony-I实现数据库集群同步的原理简述:Slony-i是采
2、用一主多从式集群方式,通过在主服务器和从服务器上建立同步节点,设置远程访问路径,启动监听进程(slon守护进程)进行监听,当主服务器进行了修改操作时,通过触发器触发,从进程进行异步修改来达到数据库同步。但是这种同步只能是从服务器备份主服务器,不能修改从服务器让主服务器同步。也即这种同步是单方向的。而且主、从服务器的postgres服务和slony-I服务都必须启动。四.先在两台机上安装postgresql和slony,且都建立一个test的数据库。在master节点的test库上建立需要复制的表,例如testtable,这些表必须要有主键(slony只是实现某个数据库,某些设定好的表
3、的同步更新,新建表不行)。需要多个表则建立多个。slave节点的test库可以不用建表。五. 详细步骤如下:1.环境OS:windowsServer2003SP1/2008;PostGreSQL:postgresql-8.2.4-1;Slony-I:postgresql-8.2.4-1自带的Slony-I;2.实现要求单向同步主服务器“172.16.1.1”到从服务器的“172.16.1.2”;其中主服务器IP:172.16.1.1,DBName:test,UserName:postgres,PassWord:111111;从服务器IP:172.16.1.2,DBName
4、:test,UserName:postgres,PassWord:111111;3.配置步骤step1:注册相应的动态链接库:在主服务器上以及从服务器上,进入%PG%/lib目录,运行“regsvr32slevent.dll”;step2:注册服务:在主服务器上以及从服务器上,进入%PG%/bin目录,运行“slon-regservice”;建立Slony-I服务。step3:建立联通性:在主服务器上以及从服务器上,编辑%PG%/data/pg_hba.conf,使网络中的两个数据库服务器能相互访问;都要加上主从的ip,必须保留127.0.0.1#IPv4localconnectio
5、ns:hostallall127.0.0.1/32md5hostallall172.16.1.1/32md5hostallall172.16.1.2/32md5step4:建立主服务器脚本文件“master.script”;master.script注:postgrecluster为群集名test为需要复制的数据库名testtable为复制表名(必须在两个库先建且要有主键)node1和node2中的1,2为节点的别名,可以用别的。------------------------------------------------------------------------------
6、------------------------------#定义集群名称clustername=postgrecluster;#定义复制节点#主节点node1adminconninfo='dbname=testhost=172.16.1.1user=postgrespassword=111111';#从节点node2adminconninfo='dbname=testhost=172.16.1.2user=postgrespassword=111111';#初始化集群,id从1开始initcluster(id=1,comment='MasterNode');#设置参与同步的数据表,
7、创建复制集,id也是从1开始,从复制集添加表createset(id=1,origin=1,comment='AlltestTables');setaddtable(setid=1,origin=1,id=1,fullyqualifiedname='public.testtable',comment='Tabletesttable');#设置存储节点,存储主从两个节点的信息storenode(id=2,comment='SlaveNode',eventno
此文档下载收益归作者所有