数据同步方法及设备与流程

文档序号:37984478发布日期:2024-05-13 12:47阅读:27来源:国知局
数据同步方法及设备与流程

本技术涉及数据存储,尤其涉及一种数据同步方法及设备。


背景技术:

1、数据库是数据存储设备,软件服务系统可以从数据库中读取数据,以向用户提供软件服务。通常需要通过灾备方案保证软件服务系统的稳定性。

2、现有技术中,在灾备方案中,设置有主用数据库和备用数据库。在主用数据库的数据出现更新时,实时的将更新数据从主用数据库同步到备用数据库中,以使备用数据库和主用数据库的数据始终保持一致。因此,在主用数据库出现异常时,可以切换到备用数据库,以向软件服务系统提供数据。

3、然而,上述方案会导致主用数据库的性能较差、同步所需要的网络资源较多、主备用数据库之间的数据差异较大。


技术实现思路

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、根据各所述历史同步数据量和所述预设的同步周期,确定所述目标带宽。

33、可选地,所述根据各所述历史同步数据量和所述预设的同步周期,确定所述目标带宽,包括:

34、根据各所述历史同步数据量的统计结果和所述预设的同步周期,确定所述目标带宽,所述统计结果包括以下至少一项:最大值、平均值。

35、可选地,所述将所述输入表恢复到上一个同步周期后的状态,包括:

36、通过所述输入表对应的备份表将所述输入表恢复到上一个同步周期后的状态,所述备份表是在每个同步周期内将所述输入表成功同步到所述备用数据库中时,对所述输入表中的数据进行备份生成的。

37、第二方面,本技术提供一种数据同步装置,包括:

38、第一同步模块,用于按照预设的同步周期,将主用数据库中的目标存储表同步到备用数据库中,所述目标存储表包括同步信息表和业务数据表;

39、状态获取模块,用于若出现主备切换,则从所述备用数据库中读取所述同步信息表,得到所述主用数据库中的各所述业务数据表的同步状态;

40、第二同步模块,用于根据各所述业务数据表的同步状态进行所述主备切换后的数据同步。

41、可选地,所述第二同步模块还用于:

42、根据各所述业务数据表的同步状态,确定进行所述主备切换时所述备用数据库所处的数据同步阶段;

43、根据所述数据同步阶段进行所述主备切换后的数据同步。

44、可选地,所述数据同步阶段包括以下至少一项:空闲阶段、准备阶段、执行阶段、加工阶段;

45、其中,所述空闲阶段用于指示所述备用数据库已完成上一个同步周期的数据同步,并且未开始下一次同步周期的数据同步;

46、所述准备阶段用于指示所述备用数据库在当前同步周期内未开始进行输入表的数据同步,所述输入表是各所述业务数据表中不依赖于其余数据表的数据表;

47、所述执行阶段用于指示所述备用数据库在当前同步周期内正在进行所述输入表的数据同步;

48、所述加工阶段用于指示所述备用数据库在当前同步周期内已完成所述输入表的数据同步。

49、可选地,所述第二同步模块还用于:

50、若各所述业务数据表的同步状态均为已完成状态,则确定所述数据同步阶段为所述空闲阶段;

51、若各所述业务数据表中的所有输入表的同步状态为未执行状态,则确定所述数据同步阶段为所述准备阶段;

52、若各所述业务数据表中的部分输入表的同步状态为已完成状态,但另一部分所述输入表的同步状态不为所述已完成状态,则确定所述数据同步阶段为所述执行阶段;

53、若各所述业务数据表中的所有输入表的同步状态为已完成状态,但所述输入表之外的其余业务数据表的同步状态不为已完成状态,则确定所述数据同步阶段为加工阶段。

54、可选地,所述第二同步模块还用于:

55、若所述数据同步阶段为所述空闲阶段,则在到达下一个同步周期时进行数据同步;

56、若所述数据同步阶段为所述准备阶段,则运行当前同步周期内的数据同步任务;

57、若所述数据同步阶段为所述执行阶段,则将所述输入表恢复到上一个同步周期后的状态,并运行当前同步周期内的数据同步任务;

58、若所述数据同步阶段为所述加工阶段,则运行当前同步周期内的数据加工任务,所述数据加工任务用于根据所述输入表更新依赖于所述输入表的数据表。

59、可选地,还包括:

60、外部文件发送模块,用于将外部输入文件发送至所述主用数据库和所述备用数据库;

61、实时同步模块,用于将所述主用数据库在当前同步周期内生成的在下一同步周期内使用的数据文件,实时同步给所述备用数据库。

62、可选地,所述第一同步模块还用于:

63、根据所述预设的同步周期,确定所述主用数据库和所述备用数据库之间的目标带宽,所述目标带宽和所述同步周期负相关;

64、在所述目标带宽下,根据所述预设的同步周期,将主用数据库中的目标存储表同步到备用数据库中。

65、可选地,所述第一同步模块还用于:

66、获取各同步周期分别对应的历史同步数据量;

67、根据各所述历史同步数据量和所述预设的同步周期,确定所述目标带宽。

68、可选地,所述第一同步模块还用于:

69、根据各所述历史同步数据量的统计结果和所述预设的同步周期,确定所述目标带宽,所述统计结果包括以下至少一项:最大值、平均值。

70、可选地,所述第二同步模块还用于:

71、通过所述输入表对应的备份表将所述输入表恢复到上一个同步周期后的状态,所述备份表是在每个同步周期内将所述输入表成功同步到所述备用数据库中时,对所述输入表中的数据进行备份生成的。

72、第三方面,本技术提供一种电子设备,包括存储器和至少一个处理器;

73、其中,存储器存储计算机执行指令;

74、至少一个处理器执行存储器存储的计算机执行指令,使得电子设备实现前述第一方面的方法。

75、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。

76、第五方面,本技术提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时用于实现第一方面的方法。

77、本技术提供的数据同步方法及设备,可以按照预设的同步周期,将主用数据库中的目标存储表同步到备用数据库中,目标存储表包括同步信息表和业务数据表;若出现主备切换,则从备用数据库中读取同步信息表,得到主用数据库中的各业务数据表的同步状态;根据各业务数据表的同步状态进行主备切换后的数据同步。本技术实施例预先设置一个同步周期,以将主用数据库在同步周期内产生的更新数据同步到备用数据库中。从而实现了非实时同步,只要求在该同步周期内完成数据同步即可。该同步周期可以根据实际应用场景灵活设置。如此,拉长了数据同步时长,可以降低每个时刻需要同步的数据量,避免出现短期内激增的同步数据。从而,可以降低主用数据库的处理压力,提高主用数据库的性能,降低专线网络的传输压力和使用成本。最后,在一个同步周期内完成了更新数据的同步,从而可以避免主备切换时,产生的数据差异扩散,有助于降低主备数据库之间的差异。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1