本发明涉及数据库,特别是涉及一种数据库的数据同步方法、设备、存储介质及产品。
背景技术:
1、在数据库系统的运行过程中,对两个数据库进行数据同步是常见工作需求,其中,提供数据的数据库通常称为源端数据库,接收数据的数据库通常称为目标端数据库。在对两个数据库进行数据同步的过程中,首先进行存量数据的初始化装载,也就是将源端数据库的存量数据同步至目标端数据库,作为后续数据同步的基础点,再以基础点为基准进行增量数据的同步。
2、一般来说,在进行存量数据的初始化装载阶段,为了保证存量数据和增量数据不重复和不缺失,通常是对源端数据库加锁,以确保源端数据库没有任何新业务产生,待存量数据的初始化装载完成后,再对数据库解锁并进行增量数据的同步。在源端数据库数据量较大的情况下,容易导致源端数据库的加锁时间较长,影响源端数据库的业务执行效率。
技术实现思路
1、本发明的一个目的是要提供一种能够提高源端数据库运行效率的数据库的数据同步方法、设备、存储介质及产品。
2、特别地,本发明提供了一种数据库的数据同步方法,包括:
3、获取到开始数据同步的触发事件;
4、连接源端数据库;
5、根据源端数据库的事务执行情况获取源端数据库的快照标识,记为目标快照标识,快照标识为标识生成时刻的具有数据库一致性的记录标识且能够用于查询源端数据库在标识生成时刻产生的数据库快照;
6、获取源端数据库最新的数据库快照,记为存量数据快照;
7、将存量数据快照对应的源端数据库的数据同步至目标端数据库;
8、以目标快照标识对应的时刻为起点进行增量数据的同步。
9、可选地,根据源端数据库的事务执行情况获取数据库的快照标识的步骤包括:
10、检查源端数据库是否存在未提交事务,若是,获取未提交事务最早的开始时刻之前的最新快照标识,记为目标快照标识,若否,获取源端数据库最新的快照标识,记为目标快照标识。
11、可选地,获取未提交事务最早的开始时刻之前的最新快照标识的步骤包括:
12、获取未提交事务的数量;
13、若只有一个未提交事务,获取未提交事务开始时刻之前的最新快照标识,记为目标快照标识。
14、可选地,获取未提交事务的数量的步骤之后包括:
15、若存在多个未提交事务,获取所有未提交事务的开始时刻;
16、比较所有未提交事务的开始时刻,得到最早的开始时刻;
17、获取最早的开始时刻之前的最新快照标识,记为目标快照标识。
18、可选地,以目标快照标识对应的时刻为起点进行增量数据的同步的步骤包括:
19、以目标快照标识对应的时刻为起点顺序获取源端数据库的事务日志;
20、解析获取到的事务日志,得到并记录事务操作;
21、将解析出的事务操作以事务为单位发送至目标端数据库。
22、可选地,在以未提交事务最早的开始时刻对应的快照标识为目标快照标识的条件下,解析获取到的事务日志的步骤包括:
23、解析获取到的事务日志,得到事务操作;
24、只记录所有未提交事务包含的事务操作,直至解析至存量数据快照对应的时刻,再记录所有解析出的事务操作。
25、可选地,获取源端数据库最新的数据库快照的步骤包括:
26、获取源端数据库最新的快照标识;
27、根据源端数据库最新的快照标识查询并获取源端数据库最新的数据库快照。
28、根据本发明的另一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机可执行程序,并且处理器执行计算机可执行程序时实现根据上述任一项的数据库的数据同步方法。
29、根据本发明的又一个方面,还提供了一种计算机可读存储介质,其上存储有计算机可执行程序,计算机可执行程序被处理器执行时实现根据上述任一项的数据库的数据同步方法。
30、根据本发明的又一个方面,还提供了一种计算机程序产品,包括计算机可执行程序,计算机可执行程序被处理器执行时实现根据上述任一项的数据库的数据同步方法。
31、本发明的数据库的数据同步方法在获取到开始数据同步的触发事件后,连接源端数据库,根据源端数据库的事务执行情况获取源端数据库的快照标识,记为目标快照标识,获取源端数据库最新的数据库快照,记为存量数据快照,将存量数据快照对应的源端数据库的数据同步至目标端数据库,以目标快照标识对应的时刻为起点进行增量数据的同步。也就是说,通过不断记录源端数据库的数据库快照和快照标识,在开始数据同步工作后,根据快照标识记录的时间点找到合适的目标快照标识,再利用源端数据库最新的快照标识查询并得到对应的存量数据快照,因为存量数据快照记录了数据同步工作开始之前某一时刻的源端数据库的数据情况,所以可以将数据库快照记录的数据作为存量数据同步至目标端数据库,就可以建立源端数据库和目标端数据库的数据同步的基础点,然后以目标快照标识记录的时间点为起点进行增量数据的同步,就可以实现源端数据库和目标端数据库的存量数据和增量数据的同步工作。因为利用快照标识和数据库快照实现了存量数据的初始化装载,以及利用快照标识记录的时间点作为增量数据的起点进行增量数据的同步,所以在进行存量数据的初始化装载时,无需停止源端数据库的业务执行,也能够保证源端数据库和目标端数据库的数据不重复、不缺失,从而有助于提高源端数据库的运行效率。
32、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
1.一种数据库的数据同步方法,包括:
2.根据权利要求1所述的数据库的数据同步方法,其中,所述根据所述源端数据库的事务执行情况获取所述数据库的快照标识的步骤包括:
3.根据权利要求2所述的数据库的数据同步方法,其中,所述获取未提交事务最早的开始时刻之前的最新快照标识的步骤包括:
4.根据权利要求3所述的数据库的数据同步方法,其中,所述获取未提交事务的数量的步骤之后包括:
5.根据权利要求2所述的数据库的数据同步方法,其中,所述以所述目标快照标识对应的时刻为起点进行增量数据的同步的步骤包括:
6.根据权利要求5所述的数据库的数据同步方法,其中,在以未提交事务最早的开始时刻对应的快照标识为目标快照标识的条件下,所述解析获取到的事务日志的步骤包括:
7.根据权利要求1所述的数据库的数据同步方法,其中,所述获取所述源端数据库最新的数据库快照的步骤包括:
8.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机可执行程序,并且所述处理器执行所述计算机可执行程序时实现根据权利要求1至7任一项所述的数据库的数据同步方法。
9.一种计算机可读存储介质,其上存储有计算机可执行程序,所述计算机可执行程序被处理器执行时实现根据权利要求1至7任一项所述的数据库的数据同步方法。
10.一种计算机程序产品,包括计算机可执行程序,所述计算机可执行程序被处理器执行时实现根据权利要求1至7任一项所述的数据库的数据同步方法。