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

文档序号:9810744阅读:568来源:国知局
分布式关系型数据库的数据同步方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据库技术,尤其涉及一种分布式关系型数据库的数据同步方法和装置。
【背景技术】
[0002]分布式关系型数据库(DataBase,简称:DB),因其采用廉价的设备堆叠成具备高可用性和高扩展性的计算集群得到广泛应用。
[0003]数据同步是指将一个数据库节点的数据迀移到另一个数据库节点,分布式关系型数据库在数据迀移的过程中,需要一定的时间,在数据迀移过程中,业务面可能会对原数据库节点进行增、删、改等操作,有可能导致数据不一致,因此,为了保证数据完全同步,现有技术中,首先将原数据库节点的数据文件拷贝到新数据库节点中,依照原数据库节点的日志文件,对新数据库节点重做数据同步开始时间点后的所有事务操作,从而,保证新数据库节点中数据与原数据库节点中保持一致。
[0004]然而,现有技术中,当数据同步时间过长,事务提交频繁的时候,记录事务操作的日志文件会呈现批量增长,而数据库节点的日志文件的存储空间有限,一般采取“环形存储”的方式,日志文件大小超过存储空间大小时,会覆盖最早的日志文件,导致数据丢失。

【发明内容】

[0005]本发明提供一种分布式关系型数据库的数据同步方法和装置,以保证数据的完整性。
[0006]本发明第一方面提供一种分布式关系型数据库的数据同步方法,包括:
[0007]接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迀移状态;
[0008]若所述数据分片为迀移状态,将所述数据分片地址重定向到所述数据分片的缓存地址,所述数据分片在缓存中被分为N个小分区,所述N个小分区被标识为已迀移的小分区和未迀移的小分区,所述N为大于等于2的整数;
[0009]确定所述事务操作请求所要操作的数据是否为已迀移的小分区对应的数据,若为已迀移的小分区对应的数据,则在重做日志中记录所述事务操作的记录。
[0010]进一步地,当缓存中的数据分片的所有小分区均已迀移之后,所述方法还包括:
[0011]将所述重做日志中同一地址中的所有事务操作的记录中除最后一次的事务操作的记录之外的其他事务操作的记录删除。
[0012]进一步地,所述方法还包括:
[0013]通过游标位置标识已迀移的小分区和未迀移的小分区,所述游标位置之前的小分区为已迀移的小分区,所述游标位置指向的小分区和所述游标位置之后的小分区为未迀移的小分区。
[0014]进一步地,所述方法还包括:
[0015]当小分区开始迀移之后,在数据分片状态信息表中将所述小分区对应的状态信息标识为已迀移。
[0016]进一步地,所述接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迀移状态之前,还包括:
[0017]将所述数据分片复制到缓存中,在所述缓存中将所述数据分片均匀切分为所述N个小分区。
[0018]本发明第二方面提供一种分布式关系型数据库的数据同步装置,包括:
[0019]接收模块,用于接收客户端发送的事务操作请求,确定所述事务操作请求所要操作的数据所在的数据分片是否为迀移状态;
[0020]重定向模块,用于若所述数据分片为迀移状态,将所述数据分片地址重定向到所述数据分片的缓存地址,所述数据分片在缓存中被分为N个小分区,所述N个小分区被标识为已迀移的小分区和未迀移的小分区,所述N为大于等于2的整数;
[0021]重做日志记录模块,用于确定所述事务操作请求所要操作的数据是否为已迀移的小分区对应的数据,若为已迀移的小分区对应的数据,则在重做日志中记录所述事务操作的记录。
[0022]进一步地,所述重做日志记录模块还用于将所述重做日志中同一地址中的所有事务操作的记录中除最后一次的事务操作的记录之外的其他事务操作的记录删除。
[0023]进一步地,还包括:
[0024]标识模块,用于通过游标位置标识已迀移的小分区和未迀移的小分区,所述游标位置之前的小分区为已迀移的小分区,所述游标位置指向的小分区和所述游标位置之后的小分区为未迀移的小分区。
[0025]进一步地,还包括:
[0026]标识模块,用于当小分区开始迀移之后,在数据分片状态信息表中将所述小分区对应的状态信息标识为已迀移。
[0027]进一步地,还包括:
[0028]缓存模块,用于将所述数据分片复制到缓存中,在所述缓存中将所述数据分片均匀切分为所述N个小分区。
[0029]本发明提供的分布式关系型数据库的数据同步方法和装置,通过确定事务操作请求所要操作的数据所在的数据分片是否为迀移状态;当数据分片为迀移状态,将数据分片地址重定向到数据分片的缓存地址,数据分片在缓存中被分为N个小分区,确定事务操作请求所要操作的数据是否为已迀移的小分区对应的数据,若为已迀移的小分区对应的数据,则在重做日志中记录事务操作的记录,由于重做日志中只记录对已迀移的小分区的事务操作,不记录对未迀移的小分区的事务操作,因此,减少了重做日志中记录的数量,节省了日志存储空间,从而,不会造成数据丢失,保证数据的完整性,以及数据同步的一致性。
【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本发明的分布式关系型数据库的系统架构图;
[0032]图2为本发明分布式关系型数据库的数据同步方法实施例的流程示意图;
[0033]图3为本发明分布式关系型数据库的数据同步装置实施例的结构示意图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0036]图1为本发明的分布式关系型数据库的系统架构图,如图1所示,本发明的分布式系统架构图在现有的系统架构图的基础上,增加了数据分片标识层以及缓存。
[0037]其中,数据路由层记录了每个数据分片的位置信息(具体存放于哪个数据库节点、偏移量等),客户端发起的事务操作请求通过数据路由层找到相应的数据分片进行操作。数据分片标识层位于数据路由层,具用于标识正在迀移的数据分片与未迀移的数据分片,具体地,可以是在数据路由层中数据路由表中增加一个字段,也可以作为一个单独的表存在,对此本发明不作限制,只要能够标识正在迀移的数据分片即可。对正在迀移的数据分片采用不同的数据路由方式,即接收到事务操作请求时对正在迀移的数据分片的操作,则冲向定到数据分片的缓存地址。
[0038]缓存,用于缓存正在迀移的数据分片,在缓存中将数据分片分为N个小分区,如图1中,将DBl的TABj分成TAB_l_a、TAB_l_b、……TAB_1_N;N为大于等于2的整数,缓存中包含重做日志以及数据分片状态信息表,数据分片状态信息表具体地可以记录游标的位置,游标I用于指示待迀移的小分区,游标之前的小分区为已迀移的小分区或者开始迀移的小分区,游标指向的小分区以及游标之后的小分区为未迀移的小分区。其中,重做日志中记录了迀移过程中,对游标之前的小分区的事务操作记录。在数据分片的所有小分区迀移完成之后,根据重做日志对迀移后的数据库中的数据进行重做。由于重做日志中只记录对已迀移的小分区的事务操作,不记录对未迀移的小分区的事务操作,因此,减少了重做日志中记录的数量,节省了日志存储空间,从而,不会造成数据丢失,保证数据的完整性,以及数据同步的一致性。
[0039]下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0040]图2为本发明分布式关系型数据库的数据同步方法实施例的流程示意图,结合图I,本实施例以将DBl的TAB_1的数据迀移到DB2中为例,本实施例的方法如下:
[0041 ] S201:将数据分片复制到缓存中,在缓存中将数据分片均匀切分为N个小分区。
[0042]其中,N为大于等于2的整数。
[0043]在数据迀移开始时,首先将DBl的TAB_1数据分片复制到缓存中,缓存可以是内存或者高速闪存如SSD,通过快速拷贝的方式将数据分片复制到缓存中之后,在缓存中将分片均与分为N个小分区,可以通过游标控制进行逐个小分区的迀移,通过游标位置标识已迀移的小分区和未迀移的小分区,所述游标位置之前的小分区为已迀移的小分区,所述游标位置指向的小分区和所述游标位置之后的小分区为未迀移的小分区。当一个小分区开始迀移以后,将游标指向下一个待迀移的小分区的起始位置,在数据分片状态信息表中将所述小分区对应的状态信息标识为已迀移,或者,在数据分片状态信息表中存储有游标的位置,游标位置之前的小分区表示已迀移的小分区,所述游标位置指向的小分区和所述游标位置之后的小分区表示未迀移的小分区,具体地,只要能够区分小分区的迀移状态即可,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1