Postgresql通过SlonyI 实现数据库同步备份.docx

Postgresql通过SlonyI 实现数据库同步备份.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

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是采用一主多从式集群方式,通过在主服务器和从服务器上建立同步节点,设置远程访问路径,启动监听进程(slon守护进程)进行监听,当主服务器进行了修改操作时,通过触发器触发,从进程进行异步修改来达到数据库同步。但是这种同步只能是从服务器备份主服务器,不能修改从服务器让主服务器同步。也即这种同步是单方向的。而且主、从服务器的postgres服务和slony-I服务都必须启动。

四. 先在两台机上安装postgresql和slony,且都建立一个test的数据库。在master节点的test库上建立需要复制的表,例如testtable,

这些表必须要有主键(slony只是实现某个数据库,某些设定好的表的同步更新,新建表不行)。需要多个表则建立多个。slave节点的test库可以不用建表。

五. 详细步骤如下:

环境

OS:windowsServer2003SP1/2008;PostGreSQL:postgresql-8.2.4-1;

Slony-I:postgresql-8.2.4-1自带的Slony-I;

实现要求

单向同步主服务器“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:test,UserName:postgres,PassWord:111111;

配置步骤

step1:

注册相应的动态链接库:

在主服务器上以及从服务器上,进入%PG%/lib目录,运行“regsvr32slevent.dll”;

step2:

注册服务:

在主服务器上以及从服务器上,进入%PG%/bin目录,运行“slon-regservice”;

建立Slony-I服务。

step3:

建立联通性:

在主服务器上以及从服务器上,编辑%PG%/data/pg_hba.conf,使网络中的两个数据库服务器能相互访问;

都要加上主从的ip,必须保留127.0.0.1

#IPv4

local

connections:

host

all

all

127.0.0.1/32

md5

host

all

all

172.16.1.1/32

md5

host

all

all

172.16.1.2/32

md5

step4:

建立主服务器脚本文件“master.script”;

master.script

注:postgrecluster为群集名test为需要复制的数据库名testtable为复制表名(必须在两个库先建且要有主键)node1和node2中的1,2为节点的别名,可以用别的。

------------------------------------------------------------------------------------------------------------

#定义集群名称

clustername=postgrecluster;

#定义复制节点

#主节点

node1adminconninfo

=dbname=test

host=172.16.1.1

user=postgres

password

=111111;

#从节点

node2adminconninfo

=111111;

=dbname=test

host=172.16.1.2

user=postgres

password

#初始化集群,id从1开始

initcluster(id=1,comment=MasterNode);

#设置参与同步的数据表,创建复制集,id也是从1开始,从复制集添加表createset(id=1,origin=1,comment=Alltest Tables);

setaddtabl

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档