本文作者:kaifamei

一种SCADA系统、主备系统以及主备机服务器切换方法与流程

更新时间:2024-12-22 23:51:20 0条评论

一种SCADA系统、主备系统以及主备机服务器切换方法与流程


一种scada系统、主备系统以及主备机服务器切换方法
技术领域
1.本技术涉及切换控制技术领域,特别涉及一种scada系统、主备系统以及主备机服务器切换方法。


背景技术:



2.scada(supervisory control and data acquisition,数据采集与监视控制)系统是以计算机为基础的dcs与电力自动化监控系统。在电力系统中,scada系统在远动系统中占重要地位,可以对现场的运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节以及各类信号报警等各项功能。
3.由于scada系统通常设置于偏远的站端,运维人员无法及时对其出现的故障进行处理,导致监控数据丢失频发。为了减少监控数据丢失,目前一般通过主机服务器、备机服务器双机部署方式来避免单点故障,从而保证scada系统的高可用性。
4.现有主、备机服务器的切换主要通过在主机服务器和备机服务器安装探针服务,定时轮询各个组件的健康状态,当组件(如数据库服务)故障后,触发故障迁移,将业务层访问的虚拟ip指向健康的备机服务器,从而提供不间断的服务。但是,主机服务器与备机服务器之间需要通过专用网络线路进行通讯,组网复杂,并且通过探针服务触发故障迁移逻辑,耦合度高,难以维护。


技术实现要素:



5.基于上述现有技术的不足,本技术提供了一种scada系统、主备系统以及主备机服务器切换方法,以解决现有方案中主机服务器与备机服务器之间需要通过专用网络进行通讯,组网复杂以及基于探针服务触发故障迁移,耦合程度高,难以维护的问题。
6.为了实现上述目的,本技术提供了以下技术方案:
7.本技术第一方面提供了一种scada系统的主备系统,所述主备系统中的主机服务器和备机服务器内均设有对应的预设存储文档,用于存储通过对应探针获取到的各个组件的健康状态信息以及自身服务器的静态信息;
8.所述主机服务器与所述备机服务器之间通过预设传输协议,实现两者自身中预设存储文档的互相访问,并基于所述预设存储文档触发所述主备系统的主备机服务器切换逻辑。
9.可选地,在上述的scada系统的主备系统中,所述探针与对应组件之间的安装方式为插拔式安装。
10.可选地,在上述的scada系统的主备系统中所述预设存储文档为txt文本。
11.可选地,在上述的scada系统的主备系统中所述预设传输协议为超文本传输协议。
12.本技术第二方面提供了一种scada系统,包括:业务层系统以及如第一方面公开的任一项所述的scada系统的主备系统;其中:
13.所述业务层系统用于获取所述主备系统的文档存储信息,并对所述文档存储信息
进行解析,得到所述主备系统的健康状态;所述文档存储信息是所述主备系统中主机服务器和备机服务器的预设存储文档中所存储的信息。
14.可选地,在上述的scada系统中,所述业务层系统用于获取所述主备系统的文档存储信息,具体为:
15.分别向所述主机服务器和所述备机服务器发起文档获取请求;其中,所述主机服务器和所述备机服务器在接收到所述文档获取请求之后,将自身预设存储文档中存储的信息进行打包发送;
16.接收所述主机服务器和所述备机服务器下发的打包信息,得到所述主备系统的文档存储信息。
17.本技术第三方面提供了一种主备机服务器的切换方法,应用于如第一方面公开的任一项所述的scada系统的主备系统,所述方法包括:
18.判断所述主备系统中当前参与服务提供的服务器是否出现异常;
19.若判断出所述主备系统中当前参与服务提供的服务器出现异常,则切换至所述主备系统中当前未参与服务提供的服务器继续提供服务。
20.可选地,在上述的主备机服务器的切换方法中,判断所述主备系统中当前参与服务提供的服务器是否出现异常,包括:
21.获取所述主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量;
22.判断所述组件数量是否大于零;
23.若判断出所述组件数量大于零,则判定所述主备系统中当前参与服务提供的服务器出现异常;
24.若判断出所述组件数量不大于零,则判定所述主备系统中当前参与服务提供的服务器是未出现异常。
25.可选地,在上述的主备机服务器的切换方法中,若判断出所述主备系统中当前参与服务提供的服务器出现异常,则还包括:
26.判断所述主备系统中当前未参与服务提供的服务器是否出现异常;
27.若判断出所述主备系统中当前未参与服务提供的服务器未出现异常,则执行切换至所述主备系统中当前未参与服务提供的服务器继续提供服务的步骤。
28.可选地,在上述的主备机服务器的切换方法中,判断所述主备系统中当前未参与服务提供的服务器是否出现异常,包括:
29.获取所述主备系统中当前未参与服务提供的服务器中处于down状态组件的组件数量;
30.判断所述组件数量是否大于零;
31.若判断出所述组件数量大于零,则判定所述主备系统中当前未参与服务提供的服务器出现异常;
32.若判断出所述组件数量不大于零,则判定所述主备系统中当前未参与服务提供的服务器是未出现异常。
33.可选地,在上述的主备机服务器的切换方法中,若判断出主备系统中当前未参与服务提供的服务器未出现异常,则还包括:
34.判断所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位,是否与当前状态相匹配;
35.若判断所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位,与当前状态不匹配,则分别将所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位调整至与所述当前状态相匹配;
36.其中,所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位与当前状态相匹配包括:所述当前参与服务提供的服务器的激活标志位为真,所述当前未参与服务提供的服务器的激活标志位为假。
37.本技术提供了一种scada系统的主备系统,该主备系统中的主机服务器和备机服务器内均设有对应的预设存储文档,用于存储通过对应探针获取到的各个组件的健康状态信息以及自身的静态信息;主机服务器与所述备机服务器之间通过预设传输协议,实现两者自身中预设存储文档的互相访问,并基于预设存储文档触发主备系统的主备机服务器切换,也即,本技术可以通过预设传输协议实现主机服务器和备机服务器中预设存储文档的互访,无需搭建专用通讯网络,避免了现有方案中主机服务器与备机服务器之间需要通过专用网络进行通讯,组网复杂的问题;并且,该系统可直接基于预设存储文档触发主备系统的主备机服务器切换,避免了现有基于探针服务触发故障迁移,耦合程度高,难以维护的问题。
附图说明
38.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
39.图1为本技术实施例提供的一种探针服务模式下的工作模式示意图;
40.图2为本技术实施例提供的一种主备机服务器的切换方法的流程图;
41.图3为本技术实施例提供的一种当前参与服务提供的服务器的异常判定流程图;
42.图4本技术另一实施例提供的一种主备机服务器的切换方法的流程图;
43.图5本技术另一实施例提供的当前未参与服务提供的服务器的异常判定流程图;
44.图6为本技术另一实施例提供的一种主备机服务器的切换方法的流程图。
具体实施方式
45.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.本技术提供了一种scada系统的主备系统,以解决现有方案中主机服务器与备机服务器之间需要通过专用网络进行通讯,组网复杂以及基于探针服务触发故障迁移,耦合程度高,难以维护的问题。
47.该scada系统的主备系统主要包括:主机服务器和备机服务器。其中,主机服务器和备机服务器内均设有对应的预设存储文档,用于存储通过对应探针获取到的各个组件的健康状态信息以及自身服务器的静态信息。
48.主机服务器和备机服务器之间通过预设传输协议,实现两者自身中预设存储文档的互相访问,并基于预设存储文档触发主备系统的主备机服务器切换。
49.其中,预设存储文档可以是txt文本;当然,并不仅限于此,还可视具体应用环境和用户需求确定,本技术对预设存储文档的具体类型不作限定,只需能够保存对应探针获取到的各个组件的健康状态信息以及自身服务器的静态信息即可,均在本技术的保护范围之内。
50.实际应用中,预设传输协议可以是超文本传输协议,当然,并不仅限于此,还可以是其他现有协议,本技术对其不作具体限定,均在本技术的保护范围之内。
51.需要说明的是,在安装主机服务器和备机服务器时,可以在约定目录下新建一个txt文本文件,以用来保存自身服务器的静态信息以及各个组件的健康状态信息。其中,新建的txt文本文件格式具体如下:
52.#/path/scada_status.txt文本文件路径
53.#当前机器是否激活为运行态
54.active:true
55.#附件信息
56.key1:value1
57.key1:value2
58.…
59.key_n:value_n
60.#安装时定的静态角
61.static_role:master
62.#主机监控信息
63.master_ip:xxx.xxx.xxx.xxx
64.master:mysql:up
65.master:kafka:up
66.master:redis:up
67.master:组件名称:up
68.#预留行可以扩展增加监控项
69.#备机监控信息
70.slave_ip:xxx.xxx.xxx.xxx
71.slave:mysql:up
72.slave:kafka:up
73.slave:redis:up
74.slave:组件名称:up
75.#预留行可以扩展增加监控项
76.具体的,在txt文本文件下主机服务器和备机服务器中组件各自对应的探针服务,
可以自由扩展或者移除,注册成服务,设置为开启自启动,探针服务将检测结果实时写入到txt文本文件对应的行中。如果某个组件正常工作,那么修改对应行的字符串为[角名]:[组件名]:[标记],如master:mysql:up表示主机服务器master上运行的mysql组件当前处于up健康状态;若某个组件异常,那么可以修改对应行字符串为master:mysql:down,表示主机服务器master上运行的mysql组件当前处于down故障状态。此处巧妙利用了linux下自带的sed命令,可以简单高效的处理字符串。
[0077]
能够理解的是,每个组件的探针服务将各自健康状态记录在预设存储文本的指定行中,最终形成一个完整的状态文本文件。该文件记录了本机服务器中各个组件的健康状态以及本系统中各个服务器的额外信息,如虚拟ip、安装时的静态角,激活标志位等等;当然,并不仅限于此,还可根据业务需要进行扩展。
[0078]
还需要说明的是,探针服务在整个系统中的工作模式如图1所示。虽然,主机服务器和备机服务器中都拥有记录自身运行状态的txt文本文件,但仍然需要获取对方服务器的运行状态,为了让主机服务器和备机服务器能够实时交互自身的信息,可以搭建一个http服务器。在linux系统中,可以通过curl命令方便的发起http请求,来获取对方的状态txt文本文件。为了不依赖第三方插件,尽可能的简单高效轻量的搭建http服务器,巧妙使用python搭建简单的http服务器。
[0079]
由于linux系统通常已经自带了python环境,只需一个简短命令就可以启动一个http服务,命令示例可以如下:
[0080]
#启动http服务
[0081]
python-m simplehttpserver 8000&
[0082]
#获取状态文件
[0083]
curl-s http://master:8000/scada_status.txt
[0084]
基于上述能够理解的是,主机服务器与备机服务器之间通过超文本传输协议(http)进行实时数据交互,并且,由于主机服务器与备机服务器之间能够获取彼此的状态信息,因此,可以基于读取到的txt文本文件中的信息,触发主备系统的主备机服务器切换逻辑。
[0085]
需要说明的是,主备机服务器切换逻辑的具体过程可参加下述对应实施例,此处不再一一赘述。
[0086]
基于上述原理,本实施例提供的scada系统的主备系统,该主备系统中的主机服务器和备机服务器内均设有对应的预设存储文档,用于存储通过对应探针获取到的各个组件的健康状态信息以及自身的静态信息;主机服务器与备机服务器之间通过预设传输协议,实现两者自身中预设存储文档的互相访问,并基于预设存储文档触发主备系统的主备机服务器切换,也即,本技术可以通过预设传输协议实现主机服务器和备机服务器中预设存储文档的互访,组网简单,无需搭建专用通讯网络,避免了现有方案中主机服务器与备机服务器之间需要通过专用网络进行通讯,组网复杂的问题;并且,该系统可直接基于预设存储文档触发主备系统的主备机服务器切换,探针服务可专注于检测组件的运行状态,避免了现有通过探针服务触发故障迁移,耦合程度高,难以维护的问题。
[0087]
并且,通过预设传输协议实现主机服务器和备机服务器的数据互访,仅需要搭建一个http服务器,即可通过curl命令发起http请求,获取对方的状态txt文本文件;相较于
传统使用web服务,如tomcat,实现数据互访的方法,本技术能够减少系统复杂性。
[0088]
此外,现有方式一般将主机服务器和备机服务器信息保存于内存中,宕机时容易丢失,而本技术可以在主机服务器和备机服务器内增设预设存储文档进行数据存储,可有效避免宕机引起的数据丢失;并且,存储于预设存储文档的信息,可以利用linux系统自带的vim工具,或者,其他操作系统自带工具,即可实现状态的修改、查询、增加、删除,能够简单、轻量、高效实现主机服务器和备机服务器的健康状态信息持久化。
[0089]
实际应用中,现有的主备系统中主机服务器和备机服务器仅能够通过简单的ping通方式激活,导致scada系统中业务层系统无法获取主机服务器和备机服务器上的信息,导致运维困难。
[0090]
对此,本技术另一实施例还提供了一种scada系统,主要包括:业务层系统以及如上述任一实施例所述的scada系统的主备系统。
[0091]
其中,业务层系统用于获取主备系统的文档存储信息,并对文档存储信息进行解析,得到主备系统的健康状态;文档存储信息是主备系统中主机服务器和备机服务器的预设存储文档中所存储的信息。
[0092]
实际应用中,业务层系统用于获取主备系统的文档存储信息的具体过程可以为:
[0093]
步骤1:分别向主机服务器和备机服务器发起文档获取请求。
[0094]
其中,主机服务器和备机服务器在接收到文档获取请求之后,将自身预设存储文档中存储的信息进行打包发送。
[0095]
步骤2:接收主机服务器和备机服务器下发的打包信息,得到主备系统的文档存储信息。
[0096]
需要说明的是,文档获取请求可以是http请求,当然,并不仅限于此,还可以是其他请求,本技术对其不作具体限定,均在本技术的保护范围之内。
[0097]
具体的,业务层系统可以通过http协议的api接口,向主备系统发起文档获取请求,从而轻松获取到当前主备系统的文档存储信息。
[0098]
还需要说明的是,业务层系统获取到主备系统的存储文档信息之后,可以通过解析文档信息中每一行内容,通过可视化界面来展示当前主备系统的详细健康状态,从而及时处理故障恢复工作。
[0099]
在本实施例提供的scada系统中,主备系统可以通过http服务,将自身中主机服务器和备机服务器内的预设存储文档以http接口的方式暴露出去,使业务层系统可以直接通过http协议获得,从而展示至运维管理界面中,让主备服务器的切换实现了可视化,同时不仅丰富了业务层系统的运维管理手段,还使scada系统运维更加便捷。
[0100]
可选地,本技术另一实施例还提供了一种主备机服务器的切换方法,可应用于如上述任一实施例提供的scada系统的主备系统,请参见图2,该方法可以包括:
[0101]
s101、判断主备系统中当前参与服务提供的服务器是否出现异常。
[0102]
实际应用中,执行步骤s101、判断主备系统中当前参与服务提供的服务器是否出现异常的具体过程可如图3所示,主要包括:
[0103]
s201、获取主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量。
[0104]
其中,可以通过先获取主备系统中当前参与服务提供的服务器中预设存储文档的
存储信息,然后再基于该存储信息确定出处于down状态组件的组件数量。
[0105]
当然,获取主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量并不仅限于上述,还可通过其他现有方式获取,本技术对其不作限定,均在本技术的保护范围之内。
[0106]
s202、判断组件数量是否大于零。
[0107]
实际应用中,当获取到主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量之后,可以判断该组件数量是否大于零,若判断出组件数量大于零,则可以执行步骤s203。若判断出组件数量不大于零,则可以执行步骤s204。
[0108]
s203、判定主备系统中当前参与服务提供的服务器出现异常。
[0109]
实际应用中,若判断出主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量大于零,则说明该服务器中存在组件故障,可以判定备系统中当前参与服务提供的服务器出现异常。
[0110]
s204、判定主备系统中当前参与服务提供的服务器是未出现异常。
[0111]
实际应用中,若判断出主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量不大于零,则说明该服务器中不存在组件故障,可以判定主备系统中当前参与服务提供的服务器未出现异常。
[0112]
需要说明的是,判断主备系统中当前参与服务提供的服务器是否出现异常的具体方式并不仅限于上述,还可以通过其他现有方式进行判断,本技术对判断方式不作具体限定,均在本技术的保护范围之内。
[0113]
若判断出主备系统中当前参与服务提供的服务器出现异常,则可以执行步骤s102。
[0114]
s102、切换至主备系统中当前未参与服务提供的服务器继续提供服务。
[0115]
假设主备系统中当前参与服务提供的服务器为主机服务器,当前未参与服务提供的服务器为备机服务器,可以在主机服务器出现异常时,切换至备机服务器继续提供服务。
[0116]
同理,若假设主备系统中当前参与服务提供的服务器为备机服务器,当前未参与服务提供的服务器为主机服务器,可以在备机服务器出现异常时,切换至主机服务器继续提供服务。
[0117]
需要说明的是,在实际执行步骤s101、判断主备系统中当前参与服务提供的服务器是否出现异常之前,还可以先判断当前参与服务提供的服务器是否可以ping通当前未参与服务提供的服务器,若判断结果为否,则继续保持主备系统中当前参与服务提供的服务器继续提供服务,若判断结果为是,则可以认为主备系统中各个服务器内预设存储文档所存储的信息是可信的,可以执行判断主备系统中当前参与服务提供的服务器是否出现异常的步骤。
[0118]
基于上述原理,本实施例提供的主备机服务器的切换方法可以在当前参与服务提供的服务器出现异常时及时切换主备系统中当前未参与服务提供的服务器继续提供服务,保证了scada系统的主备系统能够提供不间断服务,减少监控数据丢失;并且,本技术的切换逻辑是基于服务器自身内的预设存储文档的存储信息实现的,使得故障迁移的逻辑与探针服务之间解耦。
[0119]
可选地,本技术提供的另一实施例中,在执行步骤s101、判断主备系统中当前参与
服务提供的服务器是否出现异常之后,若判断出主备系统中当前参与服务提供的服务器出现异常,请参见图4,该主备机服务器的切换方法还可以包括:
[0120]
s301、判断主备系统中当前未参与服务提供的服务器是否出现异常。
[0121]
实际应用中,判断主备系统中当前未参与服务提供的服务器是否出现异常的具体过程可以如图5所示,主要包括:
[0122]
s401、获取主备系统中当前未参与服务提供的服务器中处于down状态组件的组件数量。
[0123]
其中,可以通过先获取主备系统中当前未参与服务提供的服务器中预设存储文档的存储信息,然后再基于该存储信息确定出处于down状态组件的组件数量。
[0124]
当然,获取主备系统中当前未参与服务提供的服务器中处于down状态组件的组件数量并不仅限于上述,还可通过其他现有方式获取,本技术对其不作限定,均在本技术的保护范围之内。
[0125]
s402、判断组件数量是否大于零。
[0126]
实际应用中,当获取到主备系统中当前未参与服务提供的服务器中处于down状态组件的组件数量之后,可以判断该组件数量是否大于零,若判断出组件数量大于零,则可以执行步骤s403。若判断出组件数量不大于零,则可以执行步骤s404。
[0127]
s403、判定主备系统中当前未参与服务提供的服务器出现异常。
[0128]
实际应用中,若判断出主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量大于零,则说明该服务器中存在组件故障,可以判定备系统中当前未参与服务提供的服务器出现异常。
[0129]
s404、判定主备系统中当前未参与服务提供的服务器未出现异常。
[0130]
需要说明的是,判断主备系统中当前未参与服务提供的服务器是否出现异常的具体方式并不仅限于上述,还可以通过其他现有方式判断,本技术对判断方式不作具体限定,均在本技术的保护范围之内。
[0131]
若判断出主备系统中当前未参与服务提供的服务器未出现异常,则可以执行切换至主备系统中当前未参与服务提供的服务器继续提供服务的步骤,也即步骤s102;若判断出主备系统中当前未参与服务提供的服务器出现异常,则说明主备系统中的主机服务器和备机服务器均处于异常状态,则可以将主机服务器和备机服务器均切换至不参与服务提供,以避免主备系统启动时或宕机后停电后重启,导致双主机易出现的情况。
[0132]
在本实施例中,可以先判断出主备系统中当前未参与服务提供的服务器未出现异常之后,再切换至主备系统中当前未参与服务提供的服务器继续提供服务的方式,能够预先保证将要切换至的服务器状态正常,避免无效切换。
[0133]
可选地,在本技术提供的另一实施例中,在执行步骤s301、判断主备系统中当前未参与服务提供的服务器是否出现异常之后,若判断出主备系统中当前未参与服务提供的服务器未出现异常,请参见图6,该主备机服务器的切换方法还可以包括:
[0134]
s501、判断当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位,是否与当前状态相匹配。
[0135]
其中,当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位,与当前状态相匹配包括:当前参与服务提供的服务器的激活标志位为真,当
前未参与服务提供的服务器的激活标志位为假。
[0136]
需要说明的是,激活标志位用于标识服务器是否处于运行状态。正常情况下,参与服务提供的服务器的标志位应表示处于运行状态,未参与服务提供的服务器的标志位应表示处于非运行状态。具体的,若服务器处于运行状态,其激活标志位可以表示为“真”;若服务器处于未运行状态,其激活标志位可以表示为“假”。
[0137]
还需要说明的是,当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位,与当前状态不相匹配的情形可以如下:
[0138]
情形1:当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位均为真。
[0139]
情形2:当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位均为假。
[0140]
情形3:当前参与服务提供的服务器的激活标志位为假、当前未参与服务提供的服务器的激活标志位为真。
[0141]
若判断当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位,与当前状态不匹配,则可以执行步骤s502。
[0142]
s502、分别将当前参与服务提供的服务器的激活标志位和当前未参与服务提供的服务器的激活标志位调整至与当前状态相匹配。
[0143]
实际应用中,可以在确定出主备系统中的主机服务器和备机服务均未出现异常之后,通过交互彼此的激活标志位,判断激活标志位与自身状态是否对应,以在激活标志位与自身状态不匹配时,及时对自身激活标志位进行更改,使得激活标志位与自身状态相匹配,能够在一定程度上避免主备系统中出现双主机的情况,提高了主备机服务器的切换方法的稳定性。
[0144]
基于上述实施例提供的主备机服务器的切换方法,在该主备机服务器的切换方法应用于linux系统时,则可以通过linux系统中的switch服务实现。为了方便描述,假设scada系统的主备系统在安装时,约定的主机服务器为“master”、备机服务器为“slave”,在执行一次主备机服务器的切换方法过程中,被选举成运行服务器为“切换active”,被选举成为未运行服务器为“切换inactive”,若当前对象服务器角为master,则该方法具体实施步骤如下:
[0145]
step1:首先看是否能够ping通对方,如果不通,切换active。
[0146]
step2:在ping通的前提下可认为txt文本中的信息是可信的,通过sed命令统计txt文本中,主机服务器和备机服务器处于down状态的组件数量n,如果n》0说明对应的服务器异常,否则说明是健康的。
[0147]
step3:如果master健康slave异常,那么master切换active。
[0148]
step4:如果master异常slave健康,那么master切换inactive。
[0149]
step5:如果主备都健康,需要交互彼此的激活标志位,如果双方active标志位是一true,一false,一切不变,属于正常情况,如果都是true就出现了双主机现象,按照约定,主机状态不变,保持为active;如果都是false,那么master按照约定切换为active。
[0150]
step6:如果主备都异常,一般发生在机器刚启动的时候,或者宕机后停电后重启,此时立即切为inactive,防止启动稳定后出现双主机情况。
[0151]
若当前对象服务器角为slave,则该方法具体实施步骤如下:
[0152]
step1:首先看是否能够ping通对方,如果不通,切换active。
[0153]
step2:在ping通的前提下可认为txt文本中信息是可信的,通过sed命令统计txt文本中,主机服务器和备机服务器处于down状态的组件数量n,如果n》0说明对应的服务器异常,否则说明是健康的。
[0154]
step3:如果master健康slave异常,那么slave切换inactive。
[0155]
step4:如果master异常slave健康,slave切换active。
[0156]
step5:如果主备都健康,需要交互彼此的激活标志位,如果双方active标志位是一true,一false,一切不变,属于正常情况,如果都是true就出现了双主机现象,按照约定,让备机切换成inactive;如果都是false,那么当前slave机器保持inactive状态。
[0157]
step6:如果主备都异常,一般发生在机器刚启动的时候,或者宕机后停电后重启,此时立即切为inactive,防止启动稳定后出现双主机情况。
[0158]
能够理解的是,可以通过约定大于配置的方式,也即优先以安装时指定静态角进行服务提供,在异常出现后再按照约定进行服务提供,从而解决了通讯中断后容易出现双主机的现象。
[0159]
需要说明的是,上述实例仅仅是本发明提供的一个具体应用实例,但实际应用中的应用实例并不仅限于上述,还可以根据应用环境和用户需求进行变形,只要实现方式与本技术提供的原理、思路相同,均在本技术的保护范围内。
[0160]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0161]
在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0162]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:


1.一种scada系统的主备系统,其特征在于,所述主备系统中的主机服务器和备机服务器内均设有对应的预设存储文档,用于存储通过对应探针获取到的各个组件的健康状态信息以及自身服务器的静态信息;所述主机服务器与所述备机服务器之间通过预设传输协议,实现两者自身中预设存储文档的互相访问,并基于所述预设存储文档触发所述主备系统的主备机服务器切换逻辑。2.根据权利要求1所述的scada系统的主备系统,其特征在于,所述探针与对应组件之间的安装方式为插拔式安装。3.根据权利要求1所述的scada系统的主备系统,其特征在于,所述预设存储文档为txt文本。4.根据权利要求1所述的scada系统的主备系统,其特征在于,所述预设传输协议为超文本传输协议。5.一种scada系统,其特征在于,包括:业务层系统以及如权利要求1-4任一项所述的scada系统的主备系统;其中:所述业务层系统用于获取所述主备系统的文档存储信息,并对所述文档存储信息进行解析,得到所述主备系统的健康状态;所述文档存储信息是所述主备系统中主机服务器和备机服务器的预设存储文档中所存储的信息。6.根据权利要求5所述的scada系统,其特征在于,所述业务层系统用于获取所述主备系统的文档存储信息,具体为:分别向所述主机服务器和所述备机服务器发起文档获取请求;其中,所述主机服务器和所述备机服务器在接收到所述文档获取请求之后,将自身预设存储文档中存储的信息进行打包发送;接收所述主机服务器和所述备机服务器下发的打包信息,得到所述主备系统的文档存储信息。7.一种主备机服务器的切换方法,其特征在于,应用于如权利要求1-4任一项所述的scada系统的主备系统,所述方法包括:判断所述主备系统中当前参与服务提供的服务器是否出现异常;若判断出所述主备系统中当前参与服务提供的服务器出现异常,则切换至所述主备系统中当前未参与服务提供的服务器继续提供服务。8.根据权利要求7所述的主备机服务器的切换方法,其特征在于,判断所述主备系统中当前参与服务提供的服务器是否出现异常,包括:获取所述主备系统中当前参与服务提供的服务器中处于down状态组件的组件数量;判断所述组件数量是否大于零;若判断出所述组件数量大于零,则判定所述主备系统中当前参与服务提供的服务器出现异常;若判断出所述组件数量不大于零,则判定所述主备系统中当前参与服务提供的服务器是未出现异常。9.根据权利要求7所述的主备机服务器的切换方法,其特征在于,若判断出所述主备系统中当前参与服务提供的服务器出现异常,则还包括:判断所述主备系统中当前未参与服务提供的服务器是否出现异常;
若判断出所述主备系统中当前未参与服务提供的服务器未出现异常,则执行切换至所述主备系统中当前未参与服务提供的服务器继续提供服务的步骤。10.根据权利要求9所述的主备机服务器的切换方法,其特征在于,判断所述主备系统中当前未参与服务提供的服务器是否出现异常,包括:获取所述主备系统中当前未参与服务提供的服务器中处于down状态组件的组件数量;判断所述组件数量是否大于零;若判断出所述组件数量大于零,则判定所述主备系统中当前未参与服务提供的服务器出现异常;若判断出所述组件数量不大于零,则判定所述主备系统中当前未参与服务提供的服务器是未出现异常。11.根据权利要求9所述的主备机服务器的切换方法,其特征在于,若判断出主备系统中当前未参与服务提供的服务器未出现异常,则还包括:判断所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位,是否与当前状态相匹配;若判断所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位,与当前状态不匹配,则分别将所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位调整至与所述当前状态相匹配;其中,所述当前参与服务提供的服务器的激活标志位和所述当前未参与服务提供的服务器的激活标志位与当前状态相匹配包括:所述当前参与服务提供的服务器的激活标志位为真,所述当前未参与服务提供的服务器的激活标志位为假。

技术总结


本申请公开了一种SCADA系统、主备系统以及主备机服务器切换方法,该主备系统中的主机服务器和备机服务器内均设有对应的预设存储文档,用于存储通过对应探针获取到的各个组件的健康状态信息以及自身的静态信息;主机服务器与备机服务器之间通过预设传输协议,实现两者自身中预设存储文档的互相访问,并基于预设存储文档触发主备系统的主备机服务器切换,解决了现有方案中主机服务器与备机服务器之间需要通过专用网络进行通讯,组网复杂以及基于探针服务触发故障迁移,耦合程度高,难以维护的问题。的问题。的问题。


技术研发人员:

唐积益

受保护的技术使用者:

阳光电源(南京)有限公司

技术研发日:

2022.10.18

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-87634-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-29 19:01:41

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论