本申请涉及计算机,具体而言,涉及一种数据同步方法、数据库系统、设备及存储介质。
背景技术:
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、为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种数据同步方法,其特征在于,应用于数据库系统中的备集群,所述备集群中包括:数据节点,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据节点根据各所述分段数据的分段标识对各所述分段数据进行组装,得到待同步任务,包括:
3.根据权利要求1所述的方法,其特征在于,所述数据节点根据各所述待同步任务的执行组信息将各所述待同步任务发送给执行组对应的线程,包括:
4.根据权利要求1所述的方法,其特征在于,所述数据节点根据各所述待同步任务的执行组信息将各所述待同步任务发送给执行组对应的线程之前,还包括:
5.根据权利要求1所述的方法,其特征在于,所述备集群还包括:控制节点;
6.一种数据同步方法,其特征在于,应用于时序数据库中的主集群,所述主集群包括:数据节点,所述方法包括:
7.根据权利要求6所述的方法,其特征在于,所述主集群包括:控制节点,所述方法还包括:
8.一种数据库系统,其特征在于,所述数据库系统包括:如权利要求1-7任一项所述的主集群以及多个备集群,所述主集群和所述备集群用于执行如权利要求1-7任一项所述数据同步方法的步骤。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7中任一项所述数据同步方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7中任一项所述数据同步方法的步骤。