Chinaunix

标题: 【求助】postgresql数据库服务器同步 [打印本页]

作者: alexhappy    时间: 2009-01-13 16:33
标题: 【求助】postgresql数据库服务器同步
两台postgresql数据库服务器同步,即A有变化通知B,B有变化通知A,要尽量保证它们数据的一致性
望大家指点。。。。
作者: Sorehead    时间: 2009-01-13 16:39
mysql都有这样的功能,postgresql应该也提供吧。
查文档吧。
作者: alexhappy    时间: 2009-01-13 16:48
原帖由 Sorehead 于 2009-1-13 16:39 发表
mysql都有这样的功能,postgresql应该也提供吧。
查文档吧。

是同步,不是备份哦
作者: 南无小和尚    时间: 2009-01-13 23:36
主从??
作者: alexhappy    时间: 2009-01-14 09:19
备份的话,恩,那就是主从,不过我想实现双机同步,或许也可以说是双机互备
作者: alexhappy    时间: 2009-01-14 16:40
顶起。。。。
http://bbs.chinaunix.net/thread-946249-1-1.html这个帖子有说明,只可惜我老配不对,请哪位兄弟指教一下
作者: gvim    时间: 2009-01-15 09:29
手册上有一章专门说。
作者: alexhappy    时间: 2009-01-15 09:44
原帖由 gvim 于 2009-1-15 09:29 发表
手册上有一章专门说。

是啊,我看了不明白。。。。
尤其是那个自建的pgbench,它不是数据库吗?为何可以这样pgbench -i -s 1 -U $PGBENCHUSER -h $MASTERHOST $MASTERDBNAME
反正有用了这条命令提示是没有pgbench这个命令
作者: gvim    时间: 2009-01-16 09:14
pgbenc先要安装,contrib里面默认是不安装的。
参看手册附录里面的说明。
作者: alexhappy    时间: 2009-01-16 12:01
原帖由 gvim 于 2009-1-16 09:14 发表
pgbenc先要安装,contrib里面默认是不安装的。
参看手册附录里面的说明。

这个问题我已经解决了,是我吧文档前面的看漏了,不过也很谢谢你。。。。

现在又遇到了这样一个奇怪的问题,怎么着我也弄不明白,希望能指点一下
<stdin>:34: Error: require EVENT NODE
<stdin>:34: Error: No admin conninfo provided for node -1
作者: congli    时间: 2009-01-31 23:15
slony-i只是主从,如果想多master,应该用pgcluster或pgpool-ii.
作者: scottsiu    时间: 2009-02-02 17:02
标题: 回复 #1 alexhappy 的帖子
pgbench只是一个简单的性能测试程序,你可以选以下的方式进行数据库同步:

1、Slony-I:可做到主从,但主意的是这是一个“异步”的传输,性能比较好,但库A中的数据要同步到库B最小也有1秒时差。另外对表结构也是有要求的,要求每个同步的表中一定要有主键,并且在线进行表结构的修改当前是不允许的。但它有个好处,可以在传输进设定“过滤”参数,只传输符合特定要求的数据,通过这一点可以做到数据的“实时”过滤汇总,做出一点类似ETL的功能,加以灵活运用可以达到多数据库分布的效果。

2、pgpool-II:这个可以做到master-master的数据库,其实可以理解成是一个数据库中间件,放在数据库前端,写入的数据实时同步到其下的多个节点,读数据时通过Load Balancing方式从某个节点中搜索数据达到负载均衡的目的,这里要注意的是节点越多写数据库的速度就会越慢,因为要保证数据正确定到所有节点才算是一个定动作的完成。

3、DEBD:这是一个LINUX下的块设备复制机制,可以将两个系统的分区通过网络进行数据同步,这个机制性能比较高技术也比较底层,但只能用在LINUX中,与数据库应用无关。
作者: angeler    时间: 2009-02-02 17:36
slony-I可以实现备份,但是他存在主从之分,在同一时间只能有一个数据库表可写,并且在现有postgresql版本中,truncate表并不能实现同步
作者: angeler    时间: 2009-02-02 17:40
pgpool也是可以实现互备,但是如果你的DML在存储过程中封装的话就会出现问题,pgpool使用select、update、insert等关键字来判断是进行负载均衡还是进行备份的
作者: alexhappy    时间: 2009-02-11 15:42
谢谢各位的回复,我已经搞定了
作者: 菲平    时间: 2009-03-11 15:52
如何弄的,可否分享下经验。。。

原帖由 alexhappy 于 2009-2-11 15:42 发表
谢谢各位的回复,我已经搞定了

作者: scottsiu    时间: 2009-04-06 18:36
标题: 回复 #1 alexhappy 的帖子
两个方案:
1、同步-pgpool
2、异步-slony-I

pgpool很好配的!!
作者: shengma_cu    时间: 2011-10-09 10:06
回复 10# alexhappy


    提示这个问题是怎么解决的?
作者: star320    时间: 2011-11-17 16:31
那请问 pg_standby 这种技术呢?

这技术有什么优缺点?
作者: osdba    时间: 2011-11-20 10:55
可以使用bucardo来实现双master架构。bucardo是一个使用perl脚本写的双向同步软件,通过触发器捕获变化。对于双向同步中出现的冲突,也有几种策略可以选择,如:以最后更新为准、以第一台数据库为准等等。
具体使用方法见:
http://blog.osdba.net/?post=52
作者: asdf2110    时间: 2011-12-03 14:05
等 pg 支持集群了用集群吧,pgxc
作者: tony_trh    时间: 2011-12-07 20:36
使用STANDBY 流复制技术,很好用,速度快,主机的DDL,DML一修改,马上就传输到从属主机上,




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2