[发明专利]在数据库之间进行数据同步的方法及系统有效
申请号: | 201310356601.1 | 申请日: | 2013-08-15 |
公开(公告)号: | CN104376017B | 公开(公告)日: | 2018-10-23 |
发明(设计)人: | 楼江航 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 之间 进行 数据 同步 方法 系统 | ||
本申请公开了在数据库之间进行数据同步的方法及系统,其中,所述方法包括:接收到第一数据库向第二数据库发送的同步变更信息时,开启一事务;通过结构化查询语言SQL规范,在所述事务中插入预先为第一数据库定义的标识以及所述同步变更信息中携带的业务数据,以便触发第二数据库在变更日志中记录下第一数据库的标识;将事务提交到所述第二数据库,以便第二数据库根据所述业务数据执行数据同步变更;在第二数据库同步变更完成产生新的变更数据后,判断变更日志中记录的标识与预先为第一数据库定义的标识是否相同,如果相同,则略过这条变更数据,以便不再向第一数据库发送同步变更信息。通过本申请,可以实现在异构数据库之间避免死循环同步。
技术领域
本申请涉及数据库双向同步技术领域,特别是涉及在数据库之间进行数据同步的方法及系统。
背景技术
目前,在一些大型的业务处理系统中,为了提高业务处理速度,一般需要在多地部署机房,当然,不同机房的数据库之间需要保持数据的同步。例如,某电子商务交易平台的国际站,主要的业务是对外出口,其业务的特性为:卖家用户在国内,买家用户在国外,因此,需要在国外(例如,美国)部署异地机房,最终形成了卖家在国内机房上发布商品,通过数据库同步技术同步到美国机房,国外的买家用户通过美国机房访问商品数据,并生成相应产品订单,再通过数据库同步技术同步回国内的机房(例如,设在杭州),和买家进行交互,从而形成一个数据闭环。
异地机房之间需要采用双向的数据同步技术。例如,在前述例子中,杭州的数据库中发生数据变更时,需要同步到美国,同样,美国的数据库中发生数据变更时,也要同步到杭州,但是,要避免出现死循环同步的情况。例如,杭州数据库同步美国数据库的数据,不能再从美国数据库回到杭州数据库,等等。
现有技术中,mysql为同为mysql类型的数据库之间进行数据同步时,提供了避免出现死循环同步的解决方案。也即,mysql为每个机房的数据库设置一个serverId,用于标识每条变更数据的原始产生于哪个数据库。假如存在两个mysql数据库,mysql-A和mysql-B,并且分别设置了serverId-A和serverId-B。在mysql-A上产生的数据变更都会记录该serverId-A,同时在发送每份数据变更记录的时候,都会包含对应的serverId-A。同步到目标机房的mysql-B数据库时,会在日志中记录发送过来变更数据对应的serverId-A。mysql-A同步到mysql-B的数据变更也会触发变更同步,从mysql-B发送给mysql-A时,会带上对应的serverId-A,到达mysql-A时,mysql-A发现数据的serverId-A和自己的serverId-A相同,这意味着数据的原始产生者为自己,因此忽略这数据,从而避免产生死循环同步。
但是,上述现有技术只是mysql数据库内部的解决方案,这也就意味着只能在mysql数据库之间才有效,无法支持异构数据库,也就是说,如果不同的机房中使用了不同类型的数据库,则上述方案将无法解决死循环同步问题。例如,假设某数据库为mysql-A,另一个数据库为oracle-B,此时,如果mysql-A上产生的数据变更同步到oracle-B,即使mysql-A的变更数据记录了serverId-A,也无法将其写入到oracle-B的变更日志进行保留(因为mysql无法修改oracle的日志),进而,当同步到oracle-B的数据变更再次出发变更同步之后,oracle-B会作为普通的数据变更操作来处理,无法携带上serverId-A,因此,mysql-A收到之后,就不会忽略,而是再进行更新,以此又进入了死循环同步。
因此,迫切需要本领域技术人员解决的问题就在于,在存在非mysql数据库的情况下,如果避免死循环同步现象。
发明内容
本申请提供了在数据库之间进行数据同步的方法及系统,即使不同的机房之间存在异构的数据库,也仍然可以保证在进行双向数据同步的过程中,避免发生死循环的现象,并且可以减少网络传输量,提高实现的效率。
本申请提供了如下方案:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310356601.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理方法和装置
- 下一篇:基于SIFT特征的海量图像实时检索方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置