本说明书涉及分布式数据库的数据恢复,尤其是涉及一种分布式数据库的数据恢复方法、装置、设备及存储介质。
背景技术:
1、随着数字化转型不断深入,各行业的数据体量和并发访问呈现指数级的增长,分布式数据库的容灾备份手段和模式需要不断更新。
2、目前,分布式数据库的容灾备份方案主要包括同城容灾(即生产中心+同城容灾中心)和异地容灾(即生产中心+异地容灾中心)。同城容灾的方案中,生产中心和同城容灾中心之间一般采用实时同步方式实现数据备份,以确保数据的完整性(或一致性),但难以抵御城市级的灾难。由于生产中心和异地容灾中心不在同一城市,异地容灾可以抵御城市级的灾难;而且,在异地容灾的方案中,生产中心和异地容灾中心之间一般采用异步复制方式实现数据备份,以降低二者之间的数据传输对数据库的处理性能的负面影响;但是,由于异步复制方式具有滞后性,异地容灾难以确保数据的完整性。
3、此外,目前也有采用两地三中心的分布式数据库的容灾备方案,该容灾备方案中包含生产中心、同城容灾中心和异地容灾中心;生产中心和同城容灾中心之间采用实时同步方式实现数据备份,生产中心和异地容灾中心之间采用异步复制方式实现数据备份;显然,这种容灾备方案为上述同城容灾和异地容灾的结合,实现了同城容灾和异地容灾的优势互补,但是大幅增加了实现成本。
4、因此,如何以低成本方式提高分布式数据库的数据完整性和数据安全性,已成为分布式数据库的容灾备份领域亟待解决的技术问题。
技术实现思路
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、将所述差量增量日志解析为可执行的sql文件;
31、在所述异地灾备集群中回放所述sql文件中的sql语句。
32、本说明书实施例的分布式数据库的数据恢复方法中,所述日志存储设备包括分布式日志存储设备。
33、另一方面,本说明书实施例还提供了一种分布式数据库的数据恢复装置,包括:
34、流量复制模块,用于调用本地的分光设备将生产集群中各数据服务器之间的流量同步复制到本地的镜像交换机;
35、流量聚合模块,用于调用所述镜像交换机按照预设的汇聚转发规则将所述流量聚合到目标端口;
36、流量过滤模块,用于从所述目标端口的流量中过滤出日志传输相关网络包;
37、网络包解析模块,用于解析所述日志传输相关网络包,并将解析结果转换为增量日志;
38、日志保存模块,用于调用存储接口将所述增量日志保存至本地的日志存储设备;
39、日志校验模块,用于接收到数据恢复请求时,对所述日志存储设备中的增量日志进行完整性校验;
40、差量确定模块,用于当所述日志存储设备中的增量日志通过完整性校验时,确定异地灾备集群与所述生产集群的差量增量日志;所述异地灾备集群以异步复制方式对所述生产集群进行灾备;
41、日志回放模块,用于将所述差量增量日志在所述异地灾备集群中回放,以恢复丢失的数据。
42、另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
43、另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
44、另一方面,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
45、由以上本说明书实施例提供的技术方案可见,本说明书实施例中,由于分光设备、镜像交换机和日志存储设备均部署于本地(即同城),且利用分光设备和镜像交换机可以同步将生产集群数据中心中的日志传输相关网络包,以日志格式保存至日志存储设备中,从而保证了数据完整性。由于仍保留生产集群数据中心(即生产集群中各数据服务器)和异地灾备中心,且以异步复制方式进行灾备,从而可以实现异地数据容灾,保证数据安全性。用分光设备、镜像交换机和日志存储设备替换了现有技术中的“同城灾备中心”,与建立“同城灾备中心”相比,增加分光设备、镜像交换机和日志存储设备的成本要低的多,从而使得本说明书实施例能以低成本方式兼顾数据完整性和数据安全性。进一步地,本说明书实施例中,利用分光设备复制数据,利用镜像交换机聚合数据等过程中,均未改变生产集群数据中心及异地灾备数据中心的原有架构,亦不占用原有数据中心的数据库资源,对原有生产集群数据中心及异地灾备数据中心无侵入,因而也不会对原有生产集群数据中心及异地灾备数据中心的数据库性能和可用性产生影响。