本发明涉及实时数据库的报警监控领域,具体地,涉及基于实时数据库的报警冗余方法和系统。
背景技术:
报警作为监控软件一个必不可少的核心在工业、交通、智能建筑等领域发挥着重要的作用,出于数据安全的考虑,除了基本数据的冗余备份,报警的冗余备份也必不可少。
公开号为cn202736026u的专利文献公开了一种数据库远程冗余备份系统,具有承载数据库的本地服务器,还包括:远程备份服务器,通过第一网络链路连接所述本地服务器并接收本地服务器传输的备份数据;远程冗余备份服务器,通过第二网络链路连接所述本地服务器并接收本地服务器传输的备份数据。
在现有的实时数据库系统中并未对报警冗余技术有专门的研究。特别是当发生雪崩报警时如何高性能的处理雪崩报警也是一个难题。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种基于实时数据库的报警冗余方法和系统。
根据本发明提供的一种基于实时数据库的报警冗余方法,包括:
报警接收步骤:接收报警触发源数据;
报警产生步骤:根据报警触发源数据和手动输入数据产生报警记录;所述报警记录包括实时报警属性、手动报警属性;
实时报警属性存储步骤:将实时报警属性存储在实时数据库中,并通过实时数据库冗余备份实时报警属性;
手动报警属性存储步骤:将手动报警属性存储在关系数据库中,并通过关系数据库冗余备份手动报警属性。
优选地:实时报警属性,包括报警产生时间、报警确认状态、报警恢复状态、报警优先级、报警类型、产生报警的源值;手动报警属性,包括报警确认时间、报警确认者、报警注释、报警注释时间、报警注释者、报警触发条件。
优选地,若当前报警记录对应的报警已经恢复,则在当前报警记录后将报警恢复时间在实时数据库中记录为一条恢复记录;若在实时数据库中当前报警记录存在下一条记录,则认为当前报警记录对应的报警已结束,否则认为当前报警记录对应的报警没有结束。
优选地,利用主备机分别独立完整地存储报警记录在实时数据库和关系数据库中的数据。
优选地,还包括报警查询步骤,其中,所述报警查询步骤包括:
第一查询步骤:根据报警产生时间在实时数据库中查询到报警记录并解析出报警确认状态、报警恢复状态、报警优先级、报警类型;
第二查询步骤:根据报警产生时间在实时数据库中查询报警触发源点在报警产生时间的值作为产生报警的源值;
第三查询步骤:如果报警已经恢复,则报警恢复时间为该报警对应的报警记录在实时数据库中的下一条记录的时间,报警结束时间与报警恢复时间一致;如果报警未恢复,则报警结束时间就是该报警对应的报警记录在实时数据库中的下一条报警记录的开始时间;
第四查询步骤:根据报警产生时间在关系数据库中查询报警触发条件;
第五查询步骤:如果报警手动确认,则在关系数据库中根据报警产生时间查询报警确认时间和报警确认者;
第六查询步骤:如果报警手动注释,则在关系数据库中根据报警生成时间查询报警注释时间、报警注释以及报警注释者。
根据本发明提供的一种基于实时数据库的报警冗余系统,包括:
报警接收装置:接收报警触发源数据;
报警产生装置:根据报警触发源数据和手动输入数据产生报警记录;所述报警记录包括实时报警属性、手动报警属性;
实时报警属性存储装置:将实时报警属性存储在实时数据库中,并通过实时数据库冗余备份实时报警属性;
手动报警属性存储装置:将手动报警属性存储在关系数据库中,并通过关系数据库 冗余备份手动报警属性。
优选地:实时报警属性,包括报警产生时间、报警确认状态、报警恢复状态、报警优先级、报警类型、产生报警的源值;手动报警属性,包括报警确认时间、报警确认者、报警注释、报警注释时间、报警注释者、报警触发条件。
优选地,若当前报警记录对应的报警已经恢复,则在当前报警记录后将报警恢复时间在实时数据库中记录为一条恢复记录;若在实时数据库中当前报警记录存在下一条记录,则认为当前报警记录对应的报警已结束,否则认为当前报警记录对应的报警没有结束。
优选地,利用主备机分别独立完整地存储报警记录在实时数据库和关系数据库中的数据。
优选地,还包括报警查询装置,其中,所述报警查询装置包括:
第一查询装置:根据报警产生时间在实时数据库中查询到报警记录并解析出报警确认状态、报警恢复状态、报警优先级、报警类型;
第二查询装置:根据报警产生时间在实时数据库中查询报警触发源点在报警产生时间的值作为产生报警的源值;
第三查询装置:如果报警已经恢复,则报警恢复时间为该报警对应的报警记录在实时数据库中的下一条记录的时间,报警结束时间与报警恢复时间一致;如果报警未恢复,则报警结束时间就是该报警对应的报警记录在实时数据库中的下一条报警记录的开始时间;
第四查询装置:根据报警产生时间在关系数据库中查询报警触发条件;
第五查询装置:如果报警手动确认,则在关系数据库中根据报警产生时间查询报警确认时间和报警确认者;
第六查询装置:如果报警手动注释,则在关系数据库中根据报警生成时间查询报警注释时间、报警注释以及报警注释者。
与现有技术相比,本发明具有如下的有益效果:
1、本发明基于实时数据库和关系数据库,可以确保报警数据的安全,并且能够处理雪崩报警,从而提高了系统的数据安全性。
2、本发明充分利用实时数据库自身的存储性能来提升报警的处理速度。将报警的大部分属性存储在实时数据库本身的存储模块中,只有由用户来触发的报警属性存储在关系数据库中并充分利用实时数据库本身数据的冗余和关系数据库本身的 冗余来实现报警的冗余。
3、本发明利用实时数据库的数据冗余系统和关系数据库的冗余来实现报警冗余存储和查询,保证报警在主备数据节点的一致性,当数据节点发生冗余切换时备机的报警系统能马上提供报警服务而不影响用户的使用。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的基于实时数据库的报警冗余系统中一个数据节点的示意图。
图2为本发明提供的基于实时数据库的报警冗余方法的报警记录存储的流程图。
图3为本发明提供的基于实时数据库的报警冗余方法的报警记录查询的流程图。
图4为本发明提供的基于实时数据库的报警冗余方法的步骤流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于实时数据库的报警冗余方法,包括:
报警接收步骤:接收报警触发源数据;
报警产生步骤:根据报警触发源数据和手动输入数据产生报警记录;所述报警记录包括实时报警属性、手动报警属性;
实时报警属性存储步骤:将实时报警属性存储在实时数据库中,并通过实时数据库冗余备份实时报警属性;实时报警属性,包括报警产生时间、报警确认状态、报警恢复状态、报警优先级、报警类型、产生报警的源值;实时报警属性的主备冗余由数据存储服务单元来实现;
手动报警属性存储步骤:将手动报警属性存储在关系数据库中,并通过关系数据库冗余备份手动报警属性;手动报警属性,包括报警确认时间、报警确认者、报警注释、报警注释时间、报警注释者、报警触发条件;手动报警属性利用关系数据库自身的冗余来确保数据库的一致性。
这样一条报警记录的一部分属性存储在实时数据库的数据存储服务单元中,这部分属性是每条报警记录都必须的,它们在主备冗余节点(例如主备冗余机)的数据一致性可以由实时数据库数据存储服务单元的冗余来完成;另一部分属性存储在关系数据库中,其中,报警触发条件只有报警源创建或者修改时存储在关系数据库中,报警确认时间、报警确认者、报警注释、报警注释时间、报警注释者只有在用户对已经发生的报警进行手动确认和手动注释时存储在关系数据库中。这部分存储在关系数据库中的报警属性由关系数据库自身的主备冗余来实现。这样一条完整的报警记录的所有属性项都实现了冗余存储。
这样存储的优势有
1、报警发生时确定的属性都存储在实时数据库的存储模块中,实时数据库的存储性能能充分利用起来,只要实时数据库还能继续存储,报警也能以同样的性能继续存储,特别是发生雪崩报警时也能顺利存储,这部分数据的冗余由数据存储服务单元的冗余功能自动实现。
2、用户在客户端确认报警或者注释报警的相关属性存储在关系数据库中,由于这些操作都是用户手动完成,数据量不大,用关系数据库来存储不会影响性能,发生雪崩报警时也不会影响到这部分数据,它们的冗余有关系数据库的冗余来保证。
所述基于实时数据库的报警冗余方法,还包括报警查询步骤,其中,所述报警查询步骤包括:
第一查询步骤:根据报警产生时间在实时数据库中查询到报警记录并解析出报警确认状态、报警恢复状态、报警优先级、报警类型;
第二查询步骤:根据报警产生时间在实时数据库中查询报警触发源点在报警产生时间的值作为产生报警的源值;
第三查询步骤:如果报警已经恢复,则报警恢复时间为该报警对应的报警记录在实时数据库中的下一条记录的时间,报警结束时间与报警恢复时间一致;如果报警未恢复,则报警结束时间就是该报警对应的报警记录在实时数据库中的下一条报警记录的开始时间;
第四查询步骤:根据报警产生时间在关系数据库中查询报警触发条件;
第五查询步骤:如果报警手动确认,则在关系数据库中根据报警产生时间查询报警确认时间和报警确认者;
第六查询步骤:如果报警手动注释,则在关系数据库中根据报警生成时间查询报警 注释时间、报警注释以及报警注释者。
若当前报警记录对应的报警已经恢复,则在当前报警记录后将报警恢复时间在实时数据库中记录为一条恢复记录;若在实时数据库中当前报警记录存在下一条记录,则认为当前报警记录对应的报警已结束,否则认为当前报警记录对应的报警没有结束。利用主备机分别独立完整地存储报警记录在实时数据库和关系数据库中的数据。
根据本发明提供的一种基于实时数据库的报警冗余系统,包括:
报警接收装置:接收报警触发源数据;
报警产生装置:根据报警触发源数据和手动输入数据产生报警记录;所述报警记录包括实时报警属性、手动报警属性;
实时报警属性存储装置:将实时报警属性存储在实时数据库中,并通过实时数据库冗余备份实时报警属性;实时报警属性,包括报警产生时间、报警确认状态、报警恢复状态、报警优先级、报警类型、产生报警的源值;
手动报警属性存储装置:将手动报警属性存储在关系数据库中,并通过关系数据库冗余备份手动报警属性;手动报警属性,包括报警确认时间、报警确认者、报警注释、报警注释时间、报警注释者、报警触发条件。
报警查询装置,其中,所述报警查询装置包括:
第一查询装置:根据报警产生时间在实时数据库中查询到报警记录并解析出报警确认状态、报警恢复状态、报警优先级、报警类型;
第二查询装置:根据报警产生时间在实时数据库中查询报警触发源点在报警产生时间的值作为产生报警的源值;
第三查询装置:如果报警已经恢复,则报警恢复时间为该报警对应的报警记录在实时数据库中的下一条记录的时间,报警结束时间与报警恢复时间一致;如果报警未恢复,则报警结束时间就是该报警对应的报警记录在实时数据库中的下一条报警记录的开始时间;
第四查询装置:根据报警产生时间在关系数据库中查询报警触发条件;
第五查询装置:如果报警手动确认,则在关系数据库中根据报警产生时间查询报警确认时间和报警确认者;
第六查询装置:如果报警手动注释,则在关系数据库中根据报警生成时间查询报警注释时间、报警注释以及报警注释者。
若当前报警记录对应的报警已经恢复,则在当前报警记录后将报警恢复时间在实时 数据库中记录为一条恢复记录;若在实时数据库中当前报警记录存在下一条记录,则认为当前报警记录对应的报警已结束,否则认为当前报警记录对应的报警没有结束。利用主备机分别独立完整地存储报警记录在实时数据库和关系数据库中的数据。
具体地,在基于实时数据库的报警冗余系统的一个数据节点中,如图1所示,设置有冗余节点a(主机)、冗余节点b(备机),其中,所述主备机均包括报警服务单元(即图1中的报警发生器)、实时数据库的数据存储服务单元,主备机分别包括主备关系数据库;报警服务单元:产生报警和查询报警;实时数据库的数据存储服务单元:存储数据;关系数据库:存储报警条件、报警确认信息以及报警注释信息。
在一个应用中,为了实现本发明,优选地可以部署至少2台x86服务器(内存不不小于4g,硬盘不小于100g),部署分布式实时数据库,部署带冗余功能的关系数据库。本发明应用于车联网车辆报警系统,包括如下步骤:
(1)配置车辆需要采集的采集点;
(2)配置关联到采集点的报警点;
(3)车辆产生报警;
(4)停止主备机中主机的所有服务;
(5)对已经发生的所有报警提供查询。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。