一种基于时间片段的变电站历史事项主辅双机同步方法与流程

文档序号:22627638发布日期:2020-10-23 19:36阅读:131来源:国知局
一种基于时间片段的变电站历史事项主辅双机同步方法与流程

本发明实施例涉及数据同步技术领域,具体涉及一种基于时间片段的变电站历史事项主辅双机同步方法。



背景技术:

变电站监控系统在实际运行过程中,会产生大量的运行及告警事项,这些历史事项存储在监控主机的历史数据库中,当变电站发生电网故障时,运维人员通过查询并综合分析历史事项来完成故障的排查及定位,因此,保证历史事项的完整性非常重要。目前,变电站监控系统一般采用主辅双机方式部署,但在运行过程中,可能会出现某台监控主机宕机或者通讯中断的情况,从而造成事项缺失,尤其是在主辅双机均有丢失事项时,如何进行双向同步以保证主辅双机历史事项的完整性和一致性具有非常重要的意义。

目前,历史事项主辅双机同步机制主要有缓存文件同步机制及逐点同步机制等,其存在的不足之处在于:缓存文件同步机制在缓存文件损坏或者丢失时,无法保证双机历史事项的一致性;而逐点同步机制虽然保证了双机历史事项的一致性,但其对比及同步效率较低。

基于上述现有技术中存在的不足,本发明提出一种基于时间片段的变电站历史事项主辅双机同步方法,在保证双机历史事项一致性的基础上,提升双机历史事项对比及同步效率。



技术实现要素:

本发明实施例提供一种基于时间片段的变电站历史事项主辅双机同步方法,在保证双机历史事项一致性的基础上,提升双机历史事项对比及同步效率,保证双机历史事项同步的可靠性和高效性。

本发明通过以下技术方案予以实现:

一种基于时间片段的变电站历史事项主辅双机同步方法,包括以下步骤:

划分层级时间片段,并初始化同步对象队列;

同步时间到达时,根据时间片段的同步标识及事项摘要,判断双机是否需要同步,若需同步,则对时间片段进行逐级拆解,得到需要同步的最小时间片段;

根据最小时间片段的时间段范围,提取双机历史事项,并根据事项唯一标识对双机历史数据库进行双向对比及同步。

本方案中,层级时间片段的划分,可按照“日-小时-分钟”的层级关系进行构建,应当说明的是,此处时间片段的层级划分并不是唯一确定的,应根据实际情况进行构建。同步标识为是否同步过的标志。事项唯一标识是根据当前时间、时钟序列、机器识别号等生成的时空唯一码。事项摘要是根据当前所属时间片段的所有事项的唯一标识进行运算后生成的摘要,双机在某个时间片段的历史事项不一致时,其对应的事项摘要也是不一致的。

优选的,所述划分层级时间片段,并初始化同步对象队列,具体操作如下:

创建同步对象队列,队列长度根据实际同步天数n进行配置,队列中存储的同步对象按照“日-小时-分钟”的层级关系进行构建,其中,每个同步对象包含时间戳、同步标识及事项摘要等;

读取双机的历史事项同步操作表,更新同步对象队列。

进一步的,基于上述方案,所述读取双机的历史事项同步操作表,更新同步对象队列,包括下述步骤:

读取双机历史事项同步操作表中的同步起始时间st、同步结束时间et以及每个时间片段的同步标识和事项摘要;

根据当前时间ct和实际同步天数n,计算出需要同步的起始时间dt,其中dt=ct-n,若dt小于st,则设定同步起始时间为st,若dt介于st与et之间,则设定同步起始时间为dt;

读取同步操作表中同步起始时间之后的所有时间片段的同步标识和事项摘要,刷新同步对象队列中对应的同步对象。

进一步的,基于上述方案,所述判断双机是否需要同步,包括下述步骤:

判断双机在对应时间片段的同步标识与事项摘要,若同步标识为未同步但事项摘要为一致,则根据所属的时间片段类型,按照下述过程刷新时间片段同步标识:

1)整分钟:刷新该分钟的同步标识为成功,遍历该分钟所属的小时时间分段内每分钟的同步标识,若均已同步,则转2),若有未同步的,则转步骤s0;

2)整小时:刷新该小时的同步标识为成功,遍历该小时所属的日时间分段内每小时的同步标识,若均已同步,则转3),若有未同步的,则转步骤s0;

3)整日:刷新该日的同步标识为成功;

s0:将时间片段同步标识保存到历史事项同步操作表中。

若双机在对应时间片段的同步标识为未同步且事项摘要不一致,则按照下述过程将对时间片段进行逐级拆解,得到需要同步的最小时间片段:

1)整分钟同步:将分钟同步命令加入到同步命令调度线程;

2)整小时同步:遍历该小时内每分钟的同步标识,若有未同步的分钟对象,则转1);

3)整日同步:遍历该日内每小时的同步标识,若有未同步的小时对象,则转2);

4)遍历同步对象队列,读取每日的同步标识,若有未同步的日对象,则转3)。

更进一步的,上述方案中,所述提取双机历史事项,对双机历史数据库进行双向对比及同步,包括下述步骤:

从命令队列中逐个取出同步命令,解析同步命令同步的时间片段;

分别连接主辅双机的数据库,根据同步命令中的起始时间和结束时间获取该时段内的历史事项队列;

将主辅双机的历史事项依据事项唯一标识进行双向对比,分别获取需要插入到双机的历史事项列表;

开始事务操作,将双机的历史事项列表插入到数据库中;

分别计算双机同步后所属各时间片段的事项摘要,并保存到历史事项同步操作表中;

对比双机同步后所属各时间片段的事项摘要,若一致,则根据所属的时间片段类型,按照上述过程刷新时间片段同步标识。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案具有如下优点或有益效果:

1、本申请实施例提供的一种基于时间片段的变电站历史事项主辅双机同步方法,定义了层级时间片段,可根据实际需要,进行“日-小时-分钟”等形式的层级关系构建,通过对较长的时间片段进行逐级拆解,细化了历史事项同步的时间粒度,大大提高了同步检查的效率。

2、本申请实施例提供的一种基于时间片段的变电站历史事项主辅双机同步方法,根据事项唯一标识对双机历史数据库进行双向对比及同步,保证了双机历史事项的一致性。

3、本申请实施例提供的一种基于时间片段的变电站历史事项主辅双机同步方法,采用层级时间片段同步标识及事项摘要对双机事项进行检查对比,无需对所有的时间片段进行双机事项的对比,仅在同步标识为未同步状态且事项摘要不一致时,才去提取双机事项进行对比,减少了事项对比次数,提高了主辅双机历史事项的同步检查及对比效率,在失步时能以较小的代价快速恢复同步,保证了双机历史事项同步的可靠性及高效性。

附图说明

此处的附图被并入说明书中并构成说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种基于时间片段的变电站历史事项主辅双机同步方法流程图;

图2为本申请实施例变电站历史事项生成模块主辅双机交互图;

图3为本申请实施例变电站历史事项同步模块主辅双机交互图;

图4为本申请实施例变电站历史事项存库流程图;

图5为本申请实施例变电站历史事项同步模块初始化流程图;

图6为本申请实施例变电站历史事项处理流程图;

图7为本申请实施例变电站历史事项同步流程图。

具体实施方式

为使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1示出了本实施例一种基于时间片段的变电站历史事项主辅双机同步方法流程图。

参照图1,本实施例的实现步骤如下:

s1、初始化历史事项同步模块,划分层级时间片段;

s2、根据时间片段的同步标识及事项摘要,判断双机是否需要同步,若需同步,则对时间片段进行逐级拆解,得到需要同步的最小时间片段;

s3、根据最小时间片段的时间段范围,提取双机历史事项,并根据事项唯一标识对双机历史数据库进行双向对比及同步。

上述方案中,层级时间片段的划分,可按照“日-小时-分钟”的层级关系构建;也可按照“日-小时-半小时-分钟”或者“日-小时-半小时-十分钟-分钟”等的层级关系构建,具体可根据实际情况进行设定。为了方便说明,在本实施例中,时间片段按照“日-小时-半小时-十分钟-分钟”的层级关系进行划分。时间片段中的同步标识为是否同步过的标志。事项唯一标识是根据当前时间、时钟序列、机器识别号等生成的时空唯一码。事项摘要是根据当前所属时间片段的所有事项的唯一标识进行运算后生成的摘要,双机在某个时间片段的历史事项不一致时,其对应的事项摘要也是不一致的。

具体的,如图2至4所示,图2示出了变电站历史事项生成模块主辅双机交互图,由图中可知,事项生成模块主辅双机运行时,仅主模块连接双机的事项存储模块以进行事项的发布。事项存储模块将接收到的事项存储到本地历史库中,同时,结合本地数据库中各时间片段的事项摘要及当前事项的唯一标识,计算出新的事项摘要并存储到本地历史库中。图3示出了变电站历史事项同步模块主辅双机交互图,由图中可知,历史事项同步模块可以单机运行,也可以主辅双机运行,当主辅双机运行时,仅主模块同时连接双机数据库进行同步操作,辅模块不执行同步命令。图4示出了变电站历史事项存库流程图,由图中可知,在事项生成时需对事项摘要进行写入或更新,根据事项生成时间,找到所属的分钟、十分钟、半小时、小时及日对象,更新各对象的事项摘要,双机接收到新事项时,将该事项写入到各自的历史数据库中,同时,更新各自的历史事项同步操作表。

图5示出了变电站历史事项同步模块初始化流程图,基于上述方案并参照图中所示,所述步骤s1中,初始化历史事项同步模块,划分层级时间片段,其具体步骤如下:

创建同步对象队列,队列长度根据实际同步天数n进行配置,队列中存储的同步对象按照“日-小时-半小时-十分钟-分钟”的层级关系进行构建,其中,每个同步对象包含时间戳、同步标识及事项摘要等;

更新同步对象队列,读取双机的历史事项同步操作表,同步操作表内容包括同步的起始时间st、结束时间et以及每个时间片段的同步标识和事项摘要;

根据当前时间ct和实际同步天数n,计算出需要同步的起始时间dt,其中dt=ct-n,若dt小于st,则设定同步起始时间为st,若dt介于st与et之间,则设定同步起始时间为dt;

读取同步操作表中同步起始时间之后的所有时间片段的同步标识和事项摘要,刷新同步对象队列中对应的同步对象。

具体来说,在初始化历史事项同步模块的步骤中,实际同步天数n为需要同步的天数,即从当前时间倒推的天数,根据实际需求进行配置。读取历史事项同步操作表中的起始时间与结束时间,结合当前时间与实际同步天数判断是否有交集,然后读取交集部分的同步标识和事项摘要,并刷新同步对象队列。

接下来,图6示出了变电站历史事项处理流程图,基于上述方案并参照图中所示,所述步骤s2中,根据时间片段的同步标识及事项摘要,判断双机是否需要同步,若需同步,则对时间片段进行逐级拆解,得到需要同步的最小时间片段,其具体步骤如下:

依据划分的时间片段,判定同步时间到达时对应时间片段的同步标识,若同步标识为未同步,则对比双机在对应时间片段的事项摘要是否一致,若一致,则执行步骤s21;若不一致,则执行步骤s22。

s21、根据所属的时间片段类型,刷新时间片段同步标识,其具体过程如下:

1)整分钟:刷新该分钟的同步标识为成功,遍历该分钟所属的十分钟时间分段内每分钟的同步标识,若均已同步,则转2),若有未同步的,则转s0;

2)整十分钟:刷新该十分钟的同步标识为成功,遍历该十分钟所属的半小时时间分段内每十分钟的同步标识,若均已同步,则转3);若有未同步的,则转s0;

3)整半小时:刷新该半小时的同步标识为成功;遍历该半小时所属的小时时间分段内每半小时的同步标识,若均已同步,则转4);若有未同步的,则转s0;

4)整小时:刷新该小时的同步标识为成功,遍历该小时所属的日时间分段内每小时的同步标识,若均已同步,则转5),若有未同步的,则转s0;

5)整日:刷新该日的同步标识为成功;

s0:将时间片段同步标识保存到历史事项同步操作表中。

s22、对时间片段进行逐级拆解,得到需要同步的最小时间片段,其具体过程如下:

1)整分钟同步:将分钟同步命令加入到同步命令调度线程;

2)整十分钟同步:遍历十分钟内每分钟的同步标识,若有未同步的分钟对象,则转1);

3)整半小时同步:遍历半小时内每十分钟的同步标识,若有未同步的十分钟对象,则转2);

4)整小时同步:遍历该小时内每半小时的同步标识,若有未同步的半小时对象,则转3);

5)整日同步:遍历该日内每小时的同步标识,若有未同步的小时对象,则转4);

6)遍历同步对象队列,读取每日的同步标识,若有未同步的日对象,则转5)。

具体的,图6中的初始化是指图5中变电站历史事项同步模块初始化流程。

接下来,图7示出了变电站历史事项同步流程图,基于上述方案并参照图6、图7中所示,所述步骤s3中,提取双机历史事项,对双机历史数据库进行双向对比及同步,包括下述步骤:

历史事项同步命令调度线程从命令队列中逐个取出同步命令,解析同步命令同步的时间片段;

分别连接主辅双机的数据库,根据同步命令中的起始时间和结束时间获取对应时段内的历史事项;

将主辅双机的历史事项依据事项唯一标识进行双向对比,分别获取需要插入到双机的历史事项列表;

开始事务操作,将双机的历史事项列表插入到数据库中;

分别计算双机同步后所属各时间片段的事项摘要,并保存到历史事项同步操作表中;

对比双机同步后所属各时间片段的事项摘要,若一致,则根据步骤s21中所述方法根据事项摘要所属的时间片段类型,刷新时间片段同步标识。

本实施例方法通过定义“日-小时-半小时-十分钟-分钟”的层级时间片段,提高了同步检查的效率,当某天内存在某分钟未同步时,若遍历所有的分钟对象,最多需要检查1440次,而通过本方案层级时间片段的划分,最多仅需要检查39次,大大提高了同步检查的效率。本方法还采用层级时间片段同步标识及事项摘要,无需对所有的时间片段进行双机事项的对比,仅在同步标识为未同步状态且事项摘要不一致时,才去提取双机事项进行对比,减少了事项对比的次数,提高了双机事项对比的效率。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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