一种数据库复制系统、方法、源端设备以及目的端设备技术方案

技术编号:29873041 阅读:15 留言:0更新日期:2021-08-31 23:48
一种数据库复制系统、方法、源端设备以及目的端设备,在该数据库复制系统中,在源端数据库中的事务日志到目的端设备之前,通过将事务日志按照产生时间的先后顺序进行分组,实现并行化获取并发送多组事务日志的过程,可以提高数据库复制系统的处理效率。进一步,由于在事务日志重演之前不需要考虑事务日志之间的依赖关系,从而不需要对事务日志进行集中分析处理,可以降低源端数据库的处理复杂度,可以提高系统的处理效率。且,由于不同组的事务日志在目的端设备会根据事务日志之间的依赖关系以及产生时间的先后顺序进行重演,从而可以保证在目的端数据库中获取的数据的准确性,以确保目的端数据库中的数据与源端数据库中的数据的一致性。

【技术实现步骤摘要】
一种数据库复制系统、方法、源端设备以及目的端设备本申请要求在2020年2月28日提交中华人民共和国知识产权局、申请号为202010129105.2、专利技术名称为“数据复制方法和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及存储
,尤其涉及一种数据库复制系统、方法、源端设备以及目的端设备。
技术介绍
随着技术的发展,越来越多的数据需要使用数据库进行存储。为了保证数据库中数据的可靠性,通常可以通过数据库复制方案,将源端数据库中的数据复制到目的端数据库中,以保证当源端数据库中的数据发生故障时,能够从目的端数据库中恢复发生故障前的数据。作为一种示例,基于事务日志的数据库复制方案通常包括变化数据捕获、变化数据传输以及变化数据重演这3个阶段。其中,变化数据捕获是指,通过源数据库的日志文件中记录的事务日志,识别源端数据库中发生变化的数据,并获取该发生变化的数据所对应的事务日志。变化数据的传输是指,将发生变化的数据所对应的事务日志从源端数据库传输到目的端数据库。变化数据的重演是指,目的端数据库对接收到的发生变化的数据所对应的事务日志进行解析及处理,将变化的数据更新到目的端数据库。由于数据库中的多个事务日志之间可能存在依赖关系,例如,事务日志1必须在事务日志2重演完成之后再重演,其原因在于,事务日志1和事务日志2均记录了源数据库中针对相同的操作对象进行的操作,例如写操作,针对源数据库的一个数据表行主键的写操作,事务日志1记录的针对该行主键的写操作先于事务日志2记录的针对该行主键的写操作。因此,在数据库复制方案中,考虑到上述依赖关系,只能对事务日志进行串行处理,例如先从源端数据库的日志文件中获取事务日志1,并发送事务日志1至目的端数据库,再从源端数据库的日志文件中获取事务日志2,并发送事务日志2至目的端数据库,目的端数据库先对事务日志1进行重演,再对事务日志2进行重演,由于以上方案获取事务日志的过程中必须严格执行次序,从而导致通过数据库复制方案复制数据时的效率较低。可见,如何提高根据数据库复制方案复制数据的效率,是目前亟待解决的技术问题。
技术实现思路
本申请提供一种数据库复制系统、方法、源端设备以及目的端设备,用以提高数据库复制方案复制数据的效率。第一方面,提供一种数据库复制系统,该系统用于根据源端数据库的日志文件中包括的至少两组事务日志,在目的端数据库进行重演,该系统包括源端设备和目的端设备,其中:源端设备,用于从源端数据库的日志文件中并行获取至少两组事务日志,至少两组事务日志包括第一组事务日志和第二组事务日志,并发送至少两组事务日志,例如,第一组事务日志至少包括相邻的第一事务日志和第二事务日志,第二组事务日志至少包括相邻的第三事务日志和第四事务日志,第二事务日志的产生时间早于第三事务日志的产生时间;其中,相邻的可以理解为事务日志的产生时间连续。目的端设备,用于接收至少两组事务日志,并根据至少两组事务日志在目的端设备的目的端数据库进行事务重演,例如,先在根据第一组事务日志中的第一事务日志、第二事务日志以及第一事务日志与第二事务日志的依赖关系在目的端数据库进行事务重演之后,再根据第二组事务日志中的第三事务日志、第四事务日志以及第三事务日志与第四事务日志的依赖关系在目的端数据库进行事务重演,使得目的端数据库与源端数据库存储的数据一致。在上述技术方案中,在源端数据库中的事务日志到目的端设备之前,通过将事务日志按照产生时间的先后顺序进行分组,实现并行化获取并发送多组事务日志的过程,可以提高数据库复制系统的处理效率。进一步,由于在事务日志重演之前不需要考虑事务日志之间的依赖关系,从而不需要对事务日志进行集中分析处理,可以降低源端数据库的处理复杂度,可以提高系统的处理效率。且,由于不同组的事务日志在目的端设备会根据事务日志之间的依赖关系以及产生时间的先后顺序进行重演,从而可以保证在目的端数据库中获取的数据的准确性,以确保目的端数据库中的数据与源端数据库中的数据的一致性。在一种可能的设计中,源端设备还用于在确认第一事务日志记录的第一事务操作在源端数据库中的操作对象与第二事务日志记录的第二事务操作在源端数据库中的操作对象相同,且第一事务日志记录的第一事务操作在源端数据库中的操作时刻早于第二事务日志记录的第二事务操作在源端数据库中的操作时刻的情况下,将第一事务日志的编号记录到第二事务日志中,该第一事务日志的编号用于指示第一事务日志与第二事务日志的依赖关系;以及,在确认第三事务日志记录的第三事务操作在源端数据库中的操作对象与第四事务日志记录的第四事务操作在源端数据库中的操作对象相同,且第三事务日志记录的第三事务操作在源端数据库中的操作时刻早于第四事务日志记录的第四事务操作在源端数据库中的操作时刻的情况下,将第三事务日志的编号记录到第四事务日志中,该第三事务日志的编号用于指示第三事务日志与第四事务日志的依赖关系。在上述技术方案中,可以通过源端设备将事务日志之间的依赖关系记录在对应的事务日志中,从而目的端设备可以直接根据每个事务日志记录的依赖关系来进行事务日志重演,可以提高进行事务日志重演过程的效率。在一种可能的设计中,目的端设备还用于在确认第一事务日志记录的第一事务操作在源端数据库中的操作对象与第二事务日志记录的第二事务操作在源端数据库中的操作对象相同,且第一事务日志记录的第一事务操作在源端数据库中的操作时刻早于第二事务日志记录的第二事务操作在源端数据库中的操作时刻的情况下,并将第一事务日志的编号记录到第二事务日志中,该第一事务日志的编号用于指示第一事务日志与第二事务日志的依赖关系;以及,在确认第三事务日志记录的第三事务操作在源端数据库中的操作对象与第四事务日志记录的第四事务操作在源端数据库中的操作对象相同,且第三事务日志记录的第三事务操作在源端数据库中的操作时刻早于第四事务日志记录的第四事务操作在源端数据库中的操作时刻的情况下,将第三事务日志的编号记录到第四事务日志中,该第三事务日志的编号用于指示第三事务日志与第四事务日志的依赖关系。在上述技术方案中,也可以在目的端设备接收到事务日志之后,确定各个事务日志之间的依赖关系,从而可以减少源端设备的处理量,提高抽取事务日志的过程的效率。在一种可能的设计中,以第一组事务日志和第二组事务日志为例,对目的端设备在目的端数据库进行事务日志重演的过程进行说明。针对第一组事务日志,目的端设备在获取到第一组事务日志中的第二事务日志的情况下,确认第二事务日志记录有用于指示第一事务日志与第二事务日志的依赖关系的第一事务日志的编号,在确认根据第一事务日志进行的事务重演完成之后,再根据第二事务日志进行事务重演。在上述技术方案中,目的端设备可以通过确定事务日志中是否携带其他事务日志的编号来确定该事务日志是否与其他事务日志之间存在依赖关系,若存在依赖关系,则需要等待其所依赖的事务日志完成重演之后,再根据该事务日志进行重演,以确保在目的端数据库获取的数据的准确性。在一种可能的设计中本文档来自技高网
...

【技术保护点】
1.一种数据库复制系统,其特征在于,包括源端设备和目的端设备,所述数据库复制系统用于根据源端数据库的日志文件中包括的至少两组事务日志,在目的端数据库进行重演,其中:/n所述源端设备,用于从所述源端数据库的日志文件中并行获取所述至少两组事务日志,所述至少两组事务日志包括第一组事务日志和第二组事务日志,并发送所述至少两组事务日志,其中,第一组事务日志至少包括相邻的第一事务日志和第二事务日志,所述第二组事务日志至少包括相邻的第三事务日志和第四事务日志,所述第二事务日志的产生时间早于所述第三事务日志的产生时间;/n所述目的端设备,用于接收所述至少两组事务日志,在根据所述第一组事务日志中的所述第一事务日志、所述第二事务日志以及所述第一事务日志与所述第二事务日志的依赖关系在所述目的端数据库进行事务重演之后,根据所述第二组事务日志中的所述第三事务日志、所述第四事务日志以及所述第三事务日志与所述第四事务日志的依赖关系在所述目的端数据库进行事务重演,使得所述目的端数据库与所述源端数据库存储的数据一致。/n

【技术特征摘要】
20200228 CN 20201012910521.一种数据库复制系统,其特征在于,包括源端设备和目的端设备,所述数据库复制系统用于根据源端数据库的日志文件中包括的至少两组事务日志,在目的端数据库进行重演,其中:
所述源端设备,用于从所述源端数据库的日志文件中并行获取所述至少两组事务日志,所述至少两组事务日志包括第一组事务日志和第二组事务日志,并发送所述至少两组事务日志,其中,第一组事务日志至少包括相邻的第一事务日志和第二事务日志,所述第二组事务日志至少包括相邻的第三事务日志和第四事务日志,所述第二事务日志的产生时间早于所述第三事务日志的产生时间;
所述目的端设备,用于接收所述至少两组事务日志,在根据所述第一组事务日志中的所述第一事务日志、所述第二事务日志以及所述第一事务日志与所述第二事务日志的依赖关系在所述目的端数据库进行事务重演之后,根据所述第二组事务日志中的所述第三事务日志、所述第四事务日志以及所述第三事务日志与所述第四事务日志的依赖关系在所述目的端数据库进行事务重演,使得所述目的端数据库与所述源端数据库存储的数据一致。


2.根据权利要求1所述的数据库复制系统,其特征在于,
所述源端设备还用于在确认所述第一事务日志记录的第一事务操作在所述源端数据库中的操作对象与所述第二事务日志记录的第二事务操作在所述源端数据库中的操作对象相同,且所述第一事务日志记录的第一事务操作在所述源端数据库中的操作时刻早于所述第二事务日志记录的第二事务操作在所述源端数据库中的操作时刻的情况下,将所述第一事务日志的编号记录到所述第二事务日志中,其中,所述第一事务日志的编号用于指示所述第一事务日志与所述第二事务日志的依赖关系;
所述源端设备还用于在确认所述第三事务日志记录的第三事务操作在所述源端数据库中的操作对象与所述第四事务日志记录的第四事务操作在所述源端数据库中的操作对象相同,且所述第三事务日志记录的第三事务操作在所述源端数据库中的操作时刻早于所述第四事务日志记录的第四事务操作在所述源端数据库中的操作时刻的情况下,将所述第三事务日志的编号记录到所述第四事务日志中,其中,所述第三事务日志的编号用于指示所述第三事务日志与所述第四事务日志的依赖关系。


3.根据权利要求1所述的数据库复制系统,其特征在于,
所述目的端设备还用于在确认所述第一事务日志记录的第一事务操作在所述源端数据库中的操作对象与所述第二事务日志记录的第二事务操作在所述源端数据库中的操作对象相同,且所述第一事务日志记录的第一事务操作在所述源端数据库中的操作时刻早于所述第二事务日志记录的第二事务操作在所述源端数据库中的操作时刻的情况下,将所述第一事务日志的编号记录到所述第二事务日志中,其中,所述第一事务日志的编号用于指示所述第一事务日志与所述第二事务日志的依赖关系;
所述目的端设备还用于在确认所述第三事务日志记录的第三事务操作在所述源端数据库中的操作对象与所述第四事务日志记录的第四事务操作在所述源端数据库中的操作对象相同,且所述第三事务日志记录的第三事务操作在所述源端数据库中的操作时刻早于所述第四事务日志记录的第四事务操作在所述源端数据库中的操作时刻的情况下,将所述第三事务日志的编号记录到所述第四事务日志中,其中,所述第三事务日志的编号用于指示所述第三事务日志与所述第四事务日志的依赖关系。


4.根据权利要求2或3所述的数据库复制系统,其特征在于,
所述目的端设备在获取到所述第一组事务日志中的所述第二事务日志的情况下,确认所述第二事务日志记录有用于指示所述第一事务日志与所述第二事务日志的依赖关系的所述第一事务日志的编号,在确认根据所述第一事务日志进行的事务重演完成之后,根据所述第二事务日志进行事务重演。


5.根据权利要求2或3所述的数据库复制系统,其特征在于,
所述目的端设备在获取到第一组事务日志中的所述第一事务日志的情况下,确认所述第一事务日志没有记录有用于指示与所述第一事务日志存在依赖关系的事务日志的编号,根据所述第一事务日志进行事务重演。


6.根据权利要求2或3所述的数据库复制系统,其特征在于,
所述目的端设备在获取到第二组事务日志中的所述第四事务日志的情况下,确认所述第四事务日志记录有用于指示所述第四事务日志与所述第三事务日志的依赖关系的所述第三事务日志的编号,在确认根据所述第三事务日志进行的事务重演完成之后,根据所述第四事务日志进行事务重演。


7.根据权利要求2或3所述的数据库复制系统,其特征在于,
所述目的端设备在获取到第二组事务日志中的所述第三事务日志的情况下,确认所述第三事务日志没有记录有用于指示与所述第三事务日志存在依赖关系的事务日志的编号,根据所述第三事务日志进行事务重演。


8.根据权利要求1至7任一项所述的数据库复制系统,其特征在于,所述源端设备和所述源端数据库设置在第一区域,所述目的端设备和所述目的端数据库设置在第二区域,所述第一区域和所述第二区域远程连接。


9.根据权利要求1至8任一项所述的数据库复制系统,其特征在于,
所述源端设备用于根据事务日志的编号范围从源端数据库中并行获取所述至少两组事务日志。


10.根据权利要求9所述的数据库复制系统,其特征在于,所述源端设备还用于:
从所述源端数据库中读取日志概要记录信息,所述日志概要记录信息记录有所述源端数据库产生的事务日志的编号、在所述日志文件中的记录位置、长度以及数量;
根据所述日志概要记录信息在所述日志文件中并行获取所述至少两组事务日志。


11.一种数据库复制方法,其特征在于,包括:
从源端数据库的日志文件中并行获取至少两组事务日志,所述至少两组事务日志包括第一组事务日志和第二组事务日志,并发送所述至少两组事务日志,其中,第一组事务日志至少包括相邻的第一事务日志和第二事务日志,所述第二组事务日志至少包括相邻的第三事务日志和第四事务日志,所述第二事务日志的产生时间早于所述第三事务日志的产生时间;
向目的端设备发送所述至少两组事务日志。


12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在确认所述第一事务日志记录的第一事务操作在所述源端数据库中的操作对象与所述第二事务日志记录的第二事务操作在所述源端数据库中的操作对象相同,且所述第一事务日志记录的第一事务操作在所述源端数据库中的操作时刻早于所述第二事务日志记录的第二事务操作在所述源端数据库中的操作时刻的情况下,将所述第一事务日志的编号记录到所述第二事务日志中,其中,所述第一事务日志的编号用于指示所述第一事务日志与所述第二事务日志的依赖关系;以及,
在确认所述第三事务日志记录的第三事务操作在所述源端数据库中的操作对象与所述第四事务日志记录的第四事务操作在所述源端数据库中的操作对象相同,且所述第三事务日志记录的第三事务操作在所述源端数据库中的操作时刻早于所述第四事务日志记录的第四事务操作在所述源端数据库中的操作时刻的情况下,将所述第三事务日志的编号记录到所述第四事务日志中,其中,所述第三事务日志的编号用于指示所述第三事务日志与所述第四事务日志的依赖关系。


13.根据权利要求11或12所述的方法,其特征在于,从源端数据库中并行获取所述至少两组事务日志,包括:
根据事务日志的编号范围从源端数据库中并行获取所述至少两组事务日志。


14.根据权利要求13所述的方法,其特征在于,根据事务日志的编号范围从源端数据库中并行获取所述至少两组事务日志,包括:
从所述源端数据库中读取日志概要记录信息,所述日志概要记录信息记录有所述源端数据库产生的事务日志的编号、在所述日志文件中的记录位置、长度以及数量,
根据所述日志概要记录信息在所述日志文件中并行获取所述至少两组事务日志。


15.一种数据库复制方法,其特征在于,包括:
从源端设备接收至少两组事务日志,所述至少两组事务日志包括第一组事务日志以及第二组事务日志,所述第一组事务日志至少包括相邻的第一事务日志和第二事务日志,所述第二组事务日志至少相邻的包括第三事务日志和第四事务日志,所述第二事务日志的产生时间早于所述第三事务日志的产生时间;
在根据所述第一组事务日志中的所述第一事务日志、所述第二事务日志以及所述第一事务日志与所述第二事务日志的依赖关系在目的端数据库进行事务重演之后,根据所述第二组事务日志中的所述第三事务日志、所述第四事务日志以及所述第三事务日志与所述第四事务日志的依赖关系在所述目的端数据库进行事务重演,使得所述目的端数据库与所述源端数据库存储的数据一致。


16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
在确认所述第一事务日志记录的第一事务操作在所述源端数据库中的操作对象与所述第二事务日志记录的第二事务操作在所述源端数据库中的操作对象相同,且所述第一事务日志记录的第一事务操作在所述源端数据库中的操...

【专利技术属性】
技术研发人员:孟小珍马剑涛黄凯耀李志学
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1