System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,尤其涉及一种数据库的数据同步方法、装置、设备、介质及产品。
技术介绍
1、根据业务的需求,数据库之间有时需要进行数据的同步操作,以保证两个数据库之间存储的数据的一致性。在数据同步时,源端数据库的第一同步程序可以将待同步的数据的日志文件发送给目的端数据库的第二同步程序,目的端数据库的第二同步程序接收到日志文件后,解析日志文件得到语句,从而通过执行语句的方式,将语句所操作的数据存入数据库中。
2、在现有技术中,基于连续的语句一般都操作的是相同数据表的数据,目的端数据库的第二同步程序对于解析日志文件得到的连续多个语句均存入缓存中,后续在解析得到与缓存中的语句操作的数据表不同的语句时,再执行缓存中存储的数据,以将缓存中语句操作的数据存入目的端数据库,从而减少对目的端数据库的频繁数据写入。
3、但是,当在小事务密集或者单个事务对应于多个数据表等场景下,目的端数据库的第二同步程序会频繁地执行缓存中的语句,从而增加了目的端数据库的写入次数,影响了目的端数据库的数据同步性能。
技术实现思路
1、本申请提供一种数据库的数据同步方法、装置、设备、介质及产品,针对在小事务密集或者单个事务对应于多个数据表等场景下,减少目的端数据库频繁写入数据,以提高数据库的数据同步性能。
2、本申请第一方面提供一种数据库的数据同步方法,包括:获取来自源端数据库的日志文件;根据所述日志文件确定第一语句;将所述第一语句存入缓存,其中,所述缓存表支持存储多个来自于不同事务的
3、在本申请第一方面一实施例中,所述将所述第一语句存入缓存,包括:确定所述第一语句用于操作的第一数据表;根据所述第一数据表和映射关系,确定所述缓存中的第一缓存表,其中,所述映射关系包括多个数据表,以及每个数据表与一个缓存表的对应关系;将所述第一语句存入所述第一缓存表。
4、在本申请第一方面一实施例中,所述预设条件包括以下的至少一项:所述第一缓存表中存储的多个语句分别来自的事务的数量大于第一预设值;所述第一缓存表存储所述第一语句的时刻与存储第一个语句的时刻之间的时间差大于第二预设值;所述缓存中存储缓存表的数量大于第三预设值。
5、在本申请第一方面一实施例中,所述确定所述第一语句用于操作的第一数据表之后,还包括:当所述第一数据表不存在对应的缓存表,在所述缓存中创建所述第一数据表对应的第一缓存表,并将所述第一数据表与所述第一缓存表的对应关系加入所述映射关系。
6、在本申请第一方面一实施例中,所述第一缓存表中还存储所述第一缓存表的特征信息,所述第一缓存表的特征信息包括所述第一缓存表中存储的语句来自的事务的数量、用于操作的数据表的数量,以及存储第一个语句的时刻;所述将所述第一语句存入缓存之后,还包括:根据所述缓存中每个缓存表的所述特征信息,判断所述缓存的特征信息是否符合所述预设条件。
7、在本申请第一方面一实施例中,所述执行所述缓存中存储的语句之后,还包括:删除所述第一缓存表中存储的语句,并修改所述第一缓存表的所述特征信息。
8、本申请第二方面提供一种数据库的数据同步装置,包括:获取模块,用于获取来自源端数据库的日志文件;确定模块,用于根据所述日志文件确定第一语句;缓存模块,用于将所述第一语句存入缓存,其中,所述缓存表支持存储多个来自于不同事务的语句,以及,多个用于操作不同数据表的语句;同步模块,用于当所述第一语句存入所述缓存后,所述缓存的特征信息符合预设条件,执行所述缓存中存储的语句,以将所述缓存中的语句操作的数据存入所述目的端数据库。
9、本申请第三方面提供一种电子设备,包括:存储器和处理器;所述存储器存储计算机可执行指令;所述处理器执行所述存储器存储的计算机可执行指令,使所述处理器执行如本申请第一方面任一项所述的方法。
10、本申请第四方面提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被执行时实现如本申请第一方面任一项所述的方法。
11、本申请第五方面提供一种计算机程序产品,包括计算机程序,所述计算机程序被执行时实现如本申请第一方面任一项所述的方法。
12、本申请提供的数据库的数据同步方法、装置、设备、介质及产品,目的端数据库的第二同步程序获取日志文件并解析得到第一语句后,将第一语句存入缓存中,而且目的端数据库的缓存中支持存储来自于不同事物的语句以及用于操作不同数据表的语句。也就是说,目的端数据库即使连续接收到来自于不同事物的语句以及用于操作不同数据表的语句,也并不会像现有技术中那样立即执行缓存中已经存储的语句,而是将这些语句都进行存储。最终,目的端数据库只有在其缓存的特征信息符合预设条件的情况下,才会执行缓存中的语句,以将缓存中的语句操作的数据存入目的端数据库从而实现数据的同步。因此,在小事务密集或者单个事务对应于多个数据表等场景下,第二同步程序可以将更多的语句都先存入缓存中,在缓存满足预设条件后,将缓存中的语句再合并执行,从而减少了目的端数据库频繁写入数据,进而提高目的端数据库在进行数据同步时的同步性能。
本文档来自技高网...【技术保护点】
1.一种数据库的数据同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述第一语句存入缓存,包括:
3.根据权利要求2所述的方法,其特征在于,所述预设条件包括:
4.根据权利要求2或3所述的方法,其特征在于,所述确定所述第一语句用于操作的第一数据表之后,还包括:
5.根据权利要求2或3所述的方法,其特征在于,所述第一缓存表中还存储所述第一缓存表的特征信息,所述第一缓存表的特征信息包括所述第一缓存表中存储的语句来自的事务的数量、用于操作的数据表的数量,以及存储第一个语句的时刻;
6.根据权利要求5所述的方法,其特征在于,所述执行所述缓存中存储的语句之后,还包括:
7.一种数据库的数据同步装置,其特征在于,包括:
8.一种电子设备,其特征在于,包括:存储器和处理器;
9.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令被执行时实现如权利要求1-6任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,
...【技术特征摘要】
1.一种数据库的数据同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述第一语句存入缓存,包括:
3.根据权利要求2所述的方法,其特征在于,所述预设条件包括:
4.根据权利要求2或3所述的方法,其特征在于,所述确定所述第一语句用于操作的第一数据表之后,还包括:
5.根据权利要求2或3所述的方法,其特征在于,所述第一缓存表中还存储所述第一缓存表的特征信息,所述第一缓存表的特征信息包括所述第一缓存表中存储的语句来自的事务的数量、用于操作的数据表的数量...
【专利技术属性】
技术研发人员:陶鑫宇,魏乾,
申请(专利权)人:中电科金仓北京科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。