分布式关系型数据库的数据同步方法和装置制造方法及图纸

技术编号:13180968 阅读:95 留言:0更新日期:2016-05-11 12:55
本发明专利技术提供一种分布式关系型数据库的数据同步方法和装置,通过确定事务操作请求所要操作的数据所在的数据分片是否为迁移状态;当数据分片为迁移状态,将数据分片地址重定向到数据分片的缓存地址,数据分片在缓存中被分为N个小分区,确定事务操作请求所要操作的数据是否为已迁移的小分区对应的数据,若为已迁移的小分区对应的数据,则在重做日志中记录事务操作的记录,由于重做日志中只记录对已迁移的小分区的事务操作,不记录对未迁移的小分区的事务操作,因此,减少了重做日志中记录的数量,节省了日志存储空间,从而,不会造成数据丢失,保证数据的完整性,以及数据同步的一致性。

【技术实现步骤摘要】

本专利技术涉及数据库技术,尤其涉及一种分布式关系型数据库的数据同步方法和装置
技术介绍
分布式关系型数据库(DataBase,简称:DB),因其采用廉价的设备堆叠成具备高可用性和高扩展性的计算集群得到广泛应用。数据同步是指将一个数据库节点的数据迀移到另一个数据库节点,分布式关系型数据库在数据迀移的过程中,需要一定的时间,在数据迀移过程中,业务面可能会对原数据库节点进行增、删、改等操作,有可能导致数据不一致,因此,为了保证数据完全同步,现有技术中,首先将原数据库节点的数据文件拷贝到新数据库节点中,依照原数据库节点的日志文件,对新数据库节点重做数据同步开始时间点后的所有事务操作,从而,保证新数据库节点中数据与原数据库节点中保持一致。然而,现有技术中,当数据同步时间过长,事务提交频繁的时候,记录事务操作的日志文件会呈现批量增长,而数据库节点的日志文件的存储空间有限,一般采取“环形存储”的方式,日志文件大小超过存储空间大小时,会覆盖最早的日志文件,导致数据丢失。
技术实现思路
本专利技术提供一种分布式关系型数据库的数据同步方法和装置,以保证数据的完整性。本专利技术第一方面提供一种分布式关系型数据库的数据同步方法,包括:接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迀移状态;若所述数据分片为迀移状态,将所述数据分片地址重定向到所述数据分片的缓存地址,所述数据分片在缓存中被分为N个小分区,所述N个小分区被标识为已迀移的小分区和未迀移的小分区,所述N为大于等于2的整数;确定所述事务操作请求所要操作的数据是否为已迀移的小分区对应的数据,若为已迀移的小分区对应的数据,则在重做日志中记录所述事务操作的记录。进一步地,当缓存中的数据分片的所有小分区均已迀移之后,所述方法还包括:将所述重做日志中同一地址中的所有事务操作的记录中除最后一次的事务操作的记录之外的其他事务操作的记录删除。进一步地,所述方法还包括:通过游标位置标识已迀移的小分区和未迀移的小分区,所述游标位置之前的小分区为已迀移的小分区,所述游标位置指向的小分区和所述游标位置之后的小分区为未迀移的小分区。进一步地,所述方法还包括:当小分区开始迀移之后,在数据分片状态信息表中将所述小分区对应的状态信息标识为已迀移。进一步地,所述接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迀移状态之前,还包括:将所述数据分片复制到缓存中,在所述缓存中将所述数据分片均匀切分为所述N个小分区。本专利技术第二方面提供一种分布式关系型数据库的数据同步装置,包括:接收模块,用于接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迀移状态;重定向模块,用于若所述数据分片为迀移状态,将所述数据分片地址重定向到所述数据分片的缓存地址,所述数据分片在缓存中被分为N个小分区,所述N个小分区被标识为已迀移的小分区和未迀移的小分区,所述N为大于等于2的整数;重做日志记录模块,用于确定所述事务操作请求所要操作的数据是否为已迀移的小分区对应的数据,若为已迀移的小分区对应的数据,则在重做日志中记录所述事务操作的记录。进一步地,所述重做日志记录模块还用于将所述重做日志中同一地址中的所有事务操作的记录中除最后一次的事务操作的记录之外的其他事务操作的记录删除。进一步地,还包括:标识模块,用于通过游标位置标识已迀移的小分区和未迀移的小分区,所述游标位置之前的小分区为已迀移的小分区,所述游标位置指向的小分区和所述游标位置之后的小分区为未迀移的小分区。进一步地,还包括:标识模块,用于当小分区开始迀移之后,在数据分片状态信息表中将所述小分区对应的状态信息标识为已迀移。进一步地,还包括:缓存模块,用于将所述数据分片复制到缓存中,在所述缓存中将所述数据分片均匀切分为所述N个小分区。本专利技术提供的分布式关系型数据库的数据同步方法和装置,通过确定事务操作请求所要操作的数据所在的数据分片是否为迀移状态;当数据分片为迀移状态,将数据分片地址重定向到数据分片的缓存地址,数据分片在缓存中被分为N个小分区,确定事务操作请求所要操作的数据是否为已迀移的小分区对应的数据,若为已迀移的小分区对应的数据,则在重做日志中记录事务操作的记录,由于重做日志中只记录对已迀移的小分区的事务操作,不记录对未迀移的小分区的事务操作,因此,减少了重做日志中记录的数量,节省了日志存储空间,从而,不会造成数据丢失,保证数据的完整性,以及数据同步的一致性。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术的分布式关系型数据库的系统架构图;图2为本专利技术分布式关系型数据库的数据同步方法实施例的流程示意图;图3为本专利技术分布式关系型数据库的数据同步装置实施例的结构示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。图1为本专利技术的分布式关系型数据库的系统架构图,如图1所示,本专利技术的分布式系统架构图在现有的系统架构图的基础上,增加了数据分片标识层以及缓存。其中,数据路由层记录了每个数据分片的位置信息(具体存放于哪个数据库节点、偏移量等),客户端发起的事务操作请求通过数据路由层找到相应的数据分片进行操作。数据分片标识层位于数据路由层,具用于标识正在迀移的数据分片与未迀移的数据分片,具体地,可以是在数据路由层中数据路由表中增加一个字段,也可以作为一个单独的表存在,对此本专利技术不作限制,只要能够标识正在迀移的数据分片即可。对正在迀移的数据分片采用不同的数据路由方式,即接收到事务操作请求时对正在迀移的数据分片的操作,则冲向定到数据分片的缓存地址。缓存,用于缓存正在迀移的数据分片,在缓存中将数据分片分为N个小分区,如图1中,将DBl的TABj分成TAB_l_a、TAB_l_b、……TAB_1_N;N为大于等于2的整数,缓存中包含重做日志以及数据分片状态信息表,数据分片状态信息表具体地可以记录游标的位置,游标I用于指示待迀移的小分区,游标之前的小分区为已迀移的小分区或者开始迀移的小分区,游标指向的小分区以及游标之后的小本文档来自技高网...

【技术保护点】
一种分布式关系型数据库的数据同步方法,其特征在于,包括:接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迁移状态;若所述数据分片为迁移状态,将所述数据分片地址重定向到所述数据分片的缓存地址,所述数据分片在缓存中被分为N个小分区,所述N个小分区被标识为已迁移的小分区和未迁移的小分区,所述N为大于等于2的整数;确定所述事务操作请求所要操作的数据是否为已迁移的小分区对应的数据,若为已迁移的小分区对应的数据,则在重做日志中记录所述事务操作的记录。

【技术特征摘要】

【专利技术属性】
技术研发人员:李浩罗云彬王伟华
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1