欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

本文将介绍一种最廉价的、基于邮件推拉技术(push/pull)的远程数据库同步的解决方案。所谓推拉技术,指定的是数据的主动传送及主动接收,需要发送的数据会主动传至目的地,同时目的对象会自动接收并处理,二者之间无需任何约定。在本解决方案中,我们将采用目前成熟的互联网邮件系统来实施推拉技术,使整个系统具有很好的稳定性和可靠性。本方案适合于各种环境下的数据库同步更新要求。
    数据库复制技术目前有很多,各种大型数据库系统也集成了数据库的复制技术,但这些集成的数据复制技术均有一定的限制。第一,对于异种数据库环境,不能有效支持。如ORACLE的数据复制技术不能向MS SQL SERVER中同步数据;第二,复制技术本身不考虑网络的连接问题。如果需要同步的数据库在远程,则需要用户保证网络的连通性,否则是不可能进行数据同步操作的。鉴于以上限制,要想实现广域范围内的异种数据库之间的数据同步,将会很困难。从软件技术上,需要解决异质数据库之间的访问问题;从网络结构上,需要解决广域网的连接问题,需要大量的人力及财力。

邮件技术

    互联网中的邮件技术是互联网中使用最为广泛的技术,具有使用简单,性能稳定,成本低廉等特点。利用邮件技术来实现数据同步复制,应该是一种好的选择。


 

 


    如上图所示,源数据库将需要同步的数据生成邮件,通过互联网将邮件发送至目标数据库上,再通过还原程序将邮件中的同步数据复制到数据库中。当目标数据库处理完后,将执行等情况再通过邮件返回,供发送端处理。


    这种远程数据的发送与接收,不需要专门的网络线路或VPN网,只需要与当地的ISP连接即可,可以省去大量的通讯费用。


 


推拉技术

 

    推拉技术的实现的主要靠服务器上的一个服务程序来完成,该服务程序是一个面向所有数据库的接口,负责解析所有的任务请求并完成数据库数据的更新。
下图是一个服务程序的流程框图:


 

 

    如图所示,所有的事务请求均通过任务分配器来完成,任务分配器根据任务需要生成邮件,发往目的端;同时任务分配器主动接收来到其它数据库服务器的数据同步邮件,通过分解处理后写入指定的数据库中,完成对数据库的更新。其中邮件的生成、邮件的接收等所有操作均由任务分配器自动完成,无需人为干预。

    通过邮件方式来同步数据库数据,适合于实时性要求不高的情况,因为对于邮件的处理,由于多种原因,会处理延时。从数据更新请求到数据完成更新有可能需要很长的时间。因此在我们的解决方案中,还增加了直接远程数据抓取功能,只要网络结构允许,可以直接完成对数据库的更新,更新方式可以是PUSH方式,也可以是PULL方式,以此解决实时性要求较高的数据同步要求。

下图是一个完整的远程数据更新的逻辑结构图:


 

 

    如上图所示,对于不同的二个远程系统,可以实现多种方式的远程数据更新操作,图中灰色区域是通过邮件方式完成数据同步,中间部分表示用直接数据抓取方式来完成新据的更新操作。


基于邮件推拉技术的远程数据同步的特点:

1、 操作简单,性能稳定
2、 费用低,无需额外的网络投入
3、 支持异种数据库的数据更新
4、 功能强大,所有的任务均通过描述语言书写,适合各种应用情况
5、 支持推(PUSH),拉(PULL)和直接抓取等多种处理方式
6、 数据同步全自动化,无需任何人为干预
7、 数据安全性高,网络中的每一传输环节均通过加密和压缩
8、 系统采用先进的MIDAS技术开发而成,性能快捷

 

posted on 2008-08-07 09:07  莫问奴归处  阅读(792)  评论(0编辑  收藏  举报
轩轩娃