主备调系统的数据更新方法、主备调系统、设备和介质
文献发布时间:2023-06-19 18:58:26
技术领域
本申请涉及主备调系统技术领域,特别是涉及一种主备调系统的数据更新方法、主备调系统、设备和介质。
背景技术
调度自动化系统是电力生产调度的核心支持系统,为增强自动化系统的容灾能力,目前国内各级电网普遍建设了主备两套调度自动化系统,备调系统作为主调系统的热备并行运行。
当需要数据维护时,数据更新人员需要在主调系统和备调系统执行各自的维护操作,主备调系统被当作两套独立的系统。这样的主备调系统的数据维护策略,效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据更新效率的主备调系统的数据更新方法、主备调系统、设备和介质。
第一方面,本申请提供了一种主备调系统的数据更新方法。所述主备调系统包括主调系统和备调系统,所述主调系统包括第一主数据库和至少一个第一备数据库,所述方法包括:
获取数据更新指令;
根据所述数据更新指令在所述第一主数据库中进行更新,并获得所述第一主数据库中发生数据变化的目标数据;
将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新。
在其中一个实施例中,所述将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新,还包括:
获得数据更新配置文件,并根据所述数据更新配置文件在多个第一备数据库中确定待更新的目标第一备数据库;
将所述目标数据发送至所述目标第一备数据库和所述备调系统,以使得所述目标第一备数据库和所述备调系统根据所述目标数据进行更新。
在其中一个实施例中,所述备调系统包括第二主数据库和至少一个第二备数据库,所述将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新,包括:
将所述目标数据发送至所述第一备数据库和所述第二主数据库,以使得所述第一备数据库和所述第二主数据库根据所述目标数据进行更新,并在所述第二主数据库更新完成后,控制所述第二主数据库将所述目标数据至所述第二备数据库进行更新。
在其中一个实施例中,所述第一主数据库包括物理子库或逻辑子库,所述将所述数据更新指令在所述第一主数据库中进行更新,包括:
确定所述数据更新指令的操作对象为物理子库还是逻辑子库,获得第一确定结果;
根据所述第一确定结果根据所述数据更新指令在所述第一主数据库中的物理子库和/或逻辑子库进行更新。
在其中一个实施例中,所述物理子库和逻辑子库均分别包括静态分区和动态分区;
所述根据所述第一确定结果将所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库进行更新,包括:
确定所述数据更新指令的操作对象属于静态分区还是动态分区;
若所述数据更新指令的操作对象属于静态分区,根据所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区进行更新;
若所述数据更新指令的操作对象属于动态分区,根据所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中动态分区进行更新。
在其中一个实施例中,所述若所述数据更新指令属于静态分区,将所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区进行更新,包括:
若所述数据更新指令属于静态分区,通过内存映射将所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区中目标数据发送给所述第一备数据库进行逐比特位覆盖。
在其中一个实施例中,将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新,还包括:
将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行异步更新。
第二方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的主备调系统的数据更新方法。
第三方面,本申请还提供了一种主备调系统,其特征在于,所述主备调系统包括主调系统和备调系统,所述主调系统和所述备调系统上分别存储有计算机程序,所述计算机程序被所述主调系统和所述备调系统执行时实现第一方面所述的主备调系统的数据更新方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的主备调系统的数据更新方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的主备调系统的数据更新方法。
上述主备调系统的数据更新方法、主备调系统、设备和介质,该主备调系统包括主调系统和备调系统,所述主调系统包括第一主数据库和至少一个第一备数据库,所述方法包括:获取数据更新指令;将所述数据更新指令在所述第一主数据库中进行更新,并获得所述第一主数据库中发生数据变化的目标数据;将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新。通过上述方式,本申请先在主调系统内的第一主数据库进行数据更新,然后将确定第一主数据库内发生变化的目标数据,将目标数据发送至第一备数据库和备调系统进行更新。如此,通过本申请技术方案,先在主要运行的第一主数据库进行数据更新后,其他数据库和备系统再根据第一主数据库内发生变化的目标数据进行更新即可,运维人员无需在主备调两个系分别进行操作,提高了效率。
附图说明
图1为一个实施例中多电力调度系统的结构示意图;
图2为另一个实施例中多电力调度系统的结构示意图;
图3为又一个实施例中多电力调度系统的结构示意图;
图4为一个实施例中多电力调度系统的数据传输方法的流程示意图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的主备调系统的数据更新方法,可以应用于如图1所示的应用环境中。其中,主备调系统包括主调系统和备调系统,主调系统内包括第一主数据库和至少一个第一备数据库,第一主数据库的作用包括存储实时监控数据,安装在主调系统内的应用可以将实时数据存在第一主数据库,以及将操作的数据存在第一主数据库,即应用通过访问和操作第一主数据库内的数据实现对应的功能。
多个第一备数据库主要是备份第一主数据库内的数据,提供给外界访问,例如,一第一备数据库用于提供给外界实时数据,但不能操作/控制;一第一备数据库用于提供给外界展示数据,时间并不是实时的,也不能操作/控制。各数据库之间还设置隔离装置。第一备数据库的数量主要根据实际使用设置,此处不做限定。
为了满足电网对安全性的要求,保证电网的容灾能力,主备调系统还包括备调系统,该备调系统内的数据库与主调系统内的完全一致,在主调系统出现故障时,备调系统可以无缝切换,代替主调系统维持电网的正常工作。为了方便描述,备调系统内的数据库分别为第二主数据库和至少一第二备数据库,其中,第二主数据库的作用、数据内容等均与主调系统中的第一主数据库中相同,第二备数据库的作用、数据内容等均与主调系统中的第一备数据库中相同。
可以理解的是,为保证各个数据库之间能够正常进行报文交互和数据传输,各个数据库之间部署有路由节点。
需要说明的是,主调系统可以为独立的服务器或者多个服务器组成的服务器集群,第一主数据库和第一备数据库可以位于同一服务器或者不同服务器内,也可以单独位于云上服务器,同理,备调系统也可以为独立的服务器或者多个服务器组成的服务器集群,第二主数据库和第二备数据库可以位于同一服务器或者不同服务器内,也可以单独位于云上服务器,此处不做限定。
在一个实施例中,如图2所示,提供了一种主备调系统的数据更新方法,所述方法包括:
步骤210,获取数据更新指令;
本申请应用于如图1所述的主备调系统或者应用于控制如图1所述的主备调系统的控制装置。数据维护人员可以通过控制装置或者主调系统出发数据更新指令。
步骤220,根据所述数据更新指令在所述第一主数据库中进行更新,并获得所述第一主数据库中发生数据变化的目标数据;
根据接收到的数据更新指令在第一主数据库中触发数据更新流程,数据更新流程包括数据维护、数据发布等流程。在第一住数据库更新完后,获得第一主数据库中发生数据变化的数据,为方便描述,将发生变化的数据定义为目标数据。
步骤230,将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新。
在获得第一主数据库中的目标数据后,将该目标数据发生给主调系统中的第一备数据库以及备调系统。从而使得第一备数据库以及备调系统根据目标数据进行更新。具体的,在备调系统中更新的过程包括先根据目标数据在第二主数据库中更新,在第二主数据库更新完成后,再将更新的数据发送给第二备数据库,第二备数据库根据更新的数据进行更新。
需要说明的是,在各个数据库中更新数据的过程可以参考现有技术,此处不再赘述。
上述主备调系统的数据更新方法中该主备调系统包括主调系统和备调系统,所述主调系统包括第一主数据库和至少一个第一备数据库,所述方法包括:获取数据更新指令;将所述数据更新指令在所述第一主数据库中进行更新,并获得所述第一主数据库中发生数据变化的目标数据;将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新。通过上述方式,本申请先在主调系统内的第一主数据库进行数据更新,然后将确定第一主数据库内发生变化的目标数据,将目标数据发送至第一备数据库和备调系统进行更新。如此,通过本申请技术方案,先在主要运行的第一主数据库进行数据更新后,其他数据库和备系统再根据第一主数据库内发生变化的目标数据进行更新即可,运维人员无需在主备调两个系分别进行操作,提高了效率。
在其中一个实施例中,基于图1所示的实施例,所述将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新,还包括:
获得数据更新配置文件,并根据所述数据更新配置文件在多个第一备数据库中确定待更新的目标第一备数据库;
将所述目标数据发送至所述目标第一备数据库和所述备调系统,以使得所述目标第一备数据库和所述备调系统根据所述目标数据进行更新。
具体的,在实际应用中,若存在多个备数据库,即存在多个第一备数据库。因多个备数据库的作用所有区别,在第一主数据库更新后,有些第一备数据库中并不需要相应更新,因此,本实施例中还设置了数据更新配置文件,该数据更新配置文件包括目标数据对应需要更新的第一备数据库。在第一主数据库更新后,获取该数据更新配置文件,然后根据该数据更新配置文件在多个第一备数据库中确定目标第一备数据库,即待更新的第一备数据库。将目标数据发送给目标第一备数据库和备调系统,目标第一备数据库和备调系统根据所述目标数据进行更新。
对应的,所述备调系统包括第二主数据库和至少一个第二备数据库,所述将所述目标数据发送至所述第一备数据库和所述备调系统,以使得所述第一备数据库和所述备调系统根据所述目标数据进行更新,包括:
将所述目标数据发送至所述第一备数据库和所述第二主数据库,以使得所述第一备数据库和所述第二主数据库根据所述目标数据进行更新,并在所述第二主数据库更新完成后,控制所述第二主数据库将所述目标数据至所述第二备数据库进行更新。
具体的,备调系统作为主调系统的热备份系统,备调系统中也包括第二主数据库和多个第二备数据库,以及数据更新配置文件,在第二主数据库更新后,获取该数据更新配置文件,然后根据该数据更新配置文件在多个第二备数据库中确定目标第二备数据库,即待更新的第二备数据库。将目标数据发送给目标第二备数据库,目标第二备数据库根据所述目标数据进行更新。
在其中一个实施例中,所述第一主数据库包括物理子库或逻辑子库,所述将所述数据更新指令在所述第一主数据库中进行更新,包括:
确定所述数据更新指令的操作对象为物理子库还是逻辑子库,获得第一确定结果;
根据所述第一确定结果根据所述数据更新指令在所述第一主数据库中的物理子库和/或逻辑子库进行更新。
具体的,本申请中各个数据库设置了物理子库和逻辑子库,即第一主数据库包括物理子库或逻辑子库,第一备数据库也包括物理子库或逻辑子库。
在接收到数据更新指令后,根据该数据更新指令确定是在物理子库还是逻辑子库中更新,获得对应的确定结果,定义为第一确定结果,然后根据第一确定结果和数据更新指令在第一主数据库中的物理子库和/或逻辑子库进行更新。同理,第一备数据库在接收到目标数据后,确定是在物理子库还是逻辑子库中更新,在第一备数据库中物理子库和/或逻辑子库中更新。
对应的,备调系统中各个数据库也设置了物理子库和逻辑子库,即第二主数据库包括物理子库或逻辑子库,第二备数据库也包括物理子库或逻辑子库。备调系统在接收到第一主数据库发送的目标数据后,根据目标数据确定更新的对象是物理子库还是逻辑子库,获得第二确定结果。然后根据第二确定结果和目标数据在第二主数据库的中的物理子库和/或逻辑子库进行更新。同理,第二备数据库在接收到目标数据后,确定是在物理子库还是逻辑子库中更新,在第二备数据库中物理子库和/或逻辑子库中更新。
在其中一个实施例中,物理子库和逻辑子库均分别包括静态分区和动态分区,具体实施中,如图3所示,物理子库和逻辑子库均分别包括静态分、和动态分区、索引文件和局部元数据文件;所述根据所述第一确定结果将所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库进行更新,包括:
确定所述数据更新指令的操作对象属于静态分区还是动态分区;
若所述数据更新指令的操作对象属于静态分区,根据所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区进行更新;
若所述数据更新指令的操作对象属于动态分区,根据所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中动态分区进行更新。
具体的,在更新数据的过程中,根据数据更新指令确定数据更新指令的操作对象属于静态分区还是动态分区,具体的,可以根据数据更新指令在索引文件中寻找,确定数据更新指令的操作对象属于静态分区还是动态分区,或者根据数据更新指令遍历静态分区,若没找到操作对应,再遍历动态分区,从而确定数据更新指令的操作对象属于静态分区还是动态分区。
若数据更新指令的操作对象属于静态分区,根据数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区进行更新;若数据更新指令的操作对象属于动态分区,根据数据更新指令在第一主数据库中的物理子库或逻辑子库中动态分区进行更新。
进一步的,若所述数据更新指令属于静态分区,将所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区进行更新,包括:
若所述数据更新指令属于静态分区,通过内存映射将所述数据更新指令在所述第一主数据库中的物理子库或逻辑子库中静态分区中目标数据发送给所述第一备数据库进行逐比特位覆盖。
具体的,对于静态分区中的数据,先获取第一主数据库中的物理子库或逻辑子库中静态分区中目标数据(或者目标数据所在文件),然后通过内存映射至第一备数据库,逐比特位直接覆盖第一备数据库中对应的静态分区的数据。
若数据更新指令的操作对象属于动态分区,先获取第一主数据库中的物理子库或逻辑子库中发生变化的动态分区文件以及动态数据变化记录,然后通过识别动态数据变化记录,将第一主数据库中动态分区中对应的数据逐比特位更新至第一备数据库中。对没有变化的动态数据,不作处理,以提高更新物理子库数据的效率。
在第一主数据库中数据更新完成后,通过路由节点,将目标数据拷贝至第二主数据库,第二主数据库则可以目标数据进行数据更新,其具体过程可以参考第一主数据库的过程。
进一步地,第一备数据库和所述备调系统根据所述目标数据进行更新的过程中,可以通过异步更新的方式进行。如此,更新人员在更新过程中,只要第一主数据库更新完成后,即可收到更新完成的反馈,提高了数据更新流程的响应效率。
在一个实施例中,参阅图4,数据更新人员在第一主数据库对逻辑子库进行数据维护过程中,触发第一主数据库的数据发布流程,判断逻辑子库中维护的数据属于静态分区还是动态分区。
对于静态分区中的数据,先获取第一主数据库中逻辑子库中发生变化的静态分区文件,然后用逻辑子库变化的静态分区文件通过内存映射并逐比特位直接覆盖物理子库中对应的静态分区文件;
对于动态分区中的数据,先获取第一主数据库在逻辑子库中发生变化的动态分区文件以及动态数据变化记录,然后通过识别动态数据变化记录,对于逻辑子库中有变化的动态数据,将物理子库中对应的数据逐比特位更新为逻辑子库中的数据,对于逻辑子库中没有变化的动态数据,不作处理,以提高更新物理子库数据的效率。
将第一主数据库中逻辑子库的数据维护记录更新到物理子库中后,完成第一主数据库实时库发布流程,然后将第一主数据库维护节点中的逻辑子库文件拷贝到第二主数据库路由节点,并通过在第二主数据库路由节点部署相关程序,通过异步的方式触发第二主数据库的发布流程,异步的方式即第一主数据库不用关注第二主数据库的发布成功与否,可以直接返回发布成功的信息给数据更新人员,以提高发布流程的响应效率。
将第二主数据库路由节点上从第一主数据库拷贝到的逻辑子库文件,与第二主数据库的物理子库进行全库对比,这里可以不区分第一主数据库维护的数据属于静态分区还是属于动态分区,第二主数据库的物理子库文件与相应的第一主数据库拷贝来的逻辑子库文件进行逐比特位对比,不同的部分用逻辑子库中的数据更新物理子库中的数据,这种方法可以防止第二主数据库错过了某次发布(比如网络原因)而导致实时库数据不一致的问题。
将第一主数据库中逻辑子库中的数据维护记录更新到第二主数据库在物理子库中后,完成第二主数据库实时库发布流程,此时数据更新人员只需到第二主数据库的物理子库文件中确认是否已有第一主数据库中逻辑子库中的维护数据即可。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器/计算机,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备可以为上述实施例中任一项所述的主调系统中的设备或者控制装置。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种主备调系统的数据更新方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述的主备调系统的数据更新方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以上任一实施例所述的主备调系统的数据更新方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
- 一种基于D5000主备调系统的主从模式控制方法及管理系统
- 一种电力系统双活主备调消息同步方法和装置