Chinaunix

标题: PostgreSQL复制技术展望 [打印本页]

作者: lockend    时间: 2010-10-24 13:12
标题: PostgreSQL复制技术展望
作为开源数据库的两大代表,PostgreSQL与MySQL之中一般认为PostgreSQL功能更强大。不过其实MySQL也有很多优势,方便好用、提供只读从数据库的数据库复制技术就是其中之一。

PostgreSQL并不是没有数据库复制解决方案,但一直以来,追求完美的PostgreSQL开发者决定不在PosgreSQL内核中加入内建的复制支持,因为数据库复制有很多种实现方案,每个方案都是各有特色,因此不如不开发内建复制功能,而是鼓励第三方来开发多种多样的复制方案。因此诸如Slony, Continunent等支持PostgreSQL复制的软件不断出现。但从目前的情况来看,这一决定看来很大程度上影响了PostgreSQL的流行度。

这么说不是没有道理的。复制技术对数据库来说可以说是必备功能之一。传统的复制技术主要用来实现高可用性,要求有一些主数据库的热备份,在主数据库故障时能够很快接管服务。近几年来,随着Web应用数据库数据量和访问量的增加,Web应用数据库操作模式越来越偏向读操作为主,对支持只读slave的复制技术的需求日益突出。MySQL在系统一开始就提供了内建的复制功能,相对来说,PostgreSQL迟迟不在这方面下工夫,用户当然就不会买帐了。

今年的PGCon上,两位日本的技术人员演示了他们公司开发的一个PostgreSQL复制系统,通过实时的同步复制数据库操作日志(WAL log)的方式实现。他们目前好像没有准备将代码贡献出来捐给社区(PostgreSQL采用的FreeBSD授权允许这么干),但他们的工作引起了PGCon与会人员对复制技术的很大关注。会后,PostgreSQL的核心开发人员Tom Lane在邮件列表上首次决定PostgreSQL将开始开发内建的复制解决方案。结果这个贴子在两天内就有了近140个回复,成为PostgreSQL开发历史上最被关注的开发声明之一(提示:网站被G.F.W禁掉,请用Tor或代理访问),可见用户对复制技术的需求是多少强烈。所以这件事情早该做了,PostgreSQL最初是作为ORDBMS实验场起家的,一直以来比较崇尚试验新技术,但对用户的需求关注不够,不怎么愿意去好好实现那些技术上没什么先进性,但非常有用的功能,导致了这个系统一直有点阳春白雪的感觉。

根据Tom Lane的设想,PostgreSQL内建复制功能的计划是先使用传输WAL日志的方法实现基本的复制功能,这一功能实现不太复杂,计划在下一个版本即8.4版本上加入(PostgreSQL版本升级很快,一般都不到1年,不像MySQL,5.1都快把我憋死了)。在此基础之上,准备实现只读的slave,不过有一些技术难度,主要与VACUUM有关(唉,又是这个我从来就不喜欢的VACUUM)。所以这个功能估计就要等到8.5甚至再后面了。

不管怎么说,决心已定,剩下就是干活的了。希望不久的将来我们就能看到一个更好用的PostgreSQL。
作者: renxiao2003    时间: 2010-10-24 16:26
08年底的时候,想安装Linux下的PG的主从备份(或者集群),没有安装成功。
作者: trainee    时间: 2010-10-24 17:32
这篇文章应该是去年,8.4是去年发布的。8.5改为9.0已经实现了以上功能
作者: smallfish_xy    时间: 2010-10-25 00:04
昏死,穿越了。Pg9的亮点就在此。
作者: wl6179    时间: 2011-12-18 02:04
哈哈,是挺穿越的哈~~直接用PG9了!




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