一种提高SCADA系统实时数据转储稳定性的方法和装置与流程

文档序号:16608177发布日期:2019-01-14 21:19阅读:291来源:国知局
一种提高SCADA系统实时数据转储稳定性的方法和装置与流程

本发明实施例涉及数据转储技术,尤指一种提高scada系统实时数据转储稳定性的方法和装置。



背景技术:

工业自动化控制领域,常见使用scada(supervisorycontrolanddataacquisition数据采集与监视控制)采集数据和监控现场运行设备,现场安装有各类仪表和通讯设备,scada系统通过通讯协议采集获取数据,因scada系统自身已有数据存储功能,因此通过scada系统软件模块能够实现对所需监测数据项的历史数据趋势查看和分析,又因上层数据分析模块需要底层数据进行计算和分析得出各项计量数据、运行指标等汇总数据,需要通过scada系统实时转储基础数据到关系数据库,由上层应用软件访问该数据并计算后进行业务分析。

scada系统实时数据转储运行环境一般包括:scada服务器运行scada软件系统和实时数据转储程序、数据库服务器运行关系型数据库、应用服务器运行上层行业应用软件等。

scada软件系统从现场设备采集实时数据,实时数据转储程序通过接口或常规通讯协议访问实时数据库获取数据,提供给上层行业应用软件可访问的关系数据库数据。

目前,scada系统常用的数据转储措施包括:

(1)ado数据处理脚本

scada定时脚本内嵌ado数据处理脚本,直接将实时scada变量数据写入历史库。

ado(activexdataobjects):一种程序对象,用于表示用户数据库中的数据结构和所包含的数据,使用ado对象来创建或修改表和查询、检验数据库、或者访问外部数据源。

(2)odbc数据转储组件

odbc数据转储组件获取数据的方式是通过scada厂家sdk访问内部接口,将实时数据按照一定的格式定时通过odbc方式转储到关系数据库里。

odbc(opendatabaseconnectivity开放数据库互连)是微软公司开放服务结构(wosa,windowsopenservicesarchitecture视窗开放服务架构)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准api(应用程序编程接口)。

sdk(softwaredevelopmentkit软件开发工具)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,本专利用到的为scada软件厂商提供的应用程序接口api,通过该接口访问scada实时数据库。

(3)opc数据采集和存储软件

部署opc数据采集和存储软件,该软件通过opc方式获取scada实时数据,由该软件定时采集实时数据并通过odbc方式写入关系数据库。

opc(oleforprocesscontrol过程控制的对象连接与嵌入)是基于microsoft公司com/dcom(分布式组件对象模型)技术和dna(distributedinternetapplication分布式互联网应用程序)构架,为解决现场管理层与过程控制层之间的通信标准而设计的规范,它提供了过程管理应用与现场自动化控制系统以及设备进行数据通信的一种标准机制。

然而,目前的scada系统数据转储存在以下缺点:

(1)ado数据处理脚本

因为ado脚本复杂和维护不方便,并且运行过程会影响scada系统软件运行效率。

(2)使用odbc数据转储组件或opc数据采集和存储软件过程中常出现数据丢失的现象:

odbc组件转储出现异常时,数据会临时中断;

数据库访问异常,数据出现临时中断;

数据库维护或迁移,数据出现断续;opc采集和存储软件存储数据出现异常(数据库写入失败、网络异常等),数据会临时中断;

因数据库迁移、scada系统升级需重新配置或升级维护opc数据采集和存储软件,重新配置数据项并重启软件造成数据丢失。其中,scada系统升级可以包括scada系统数据采集项目调整升级、opc数据采集和存储软件配置项目和软件升级。

针对上述问题,目前常见的解决方法如下:

传统解决方法通过监测进程是否异常、检测数据是否停止转储,重新启动和激活软件功能,并进行人为维护和补全数据(查询scada历史库数据记录,人工补齐)。但目前的这些解决方案仍存在以下问题:

(1)数据出现长时间断续,补齐工作量大;

(2)部分数据不全,导致定时数据计算的结果存在偏差;

(3)数据维护成本高;

(4)影响上层数据计算和分析处理应用功能;

(5)增加数据迁移的工作复杂度。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种提高数据采集与监视控制scada系统实时数据转储稳定性的方法和装置,能够防止数据转储过程中出现故障后的数据断续,避免程序故障、升级和数据库迁移等引发的故障无法自动恢复、补齐历史数据行为,保证数据转储的顺序写入,从而提高scada系统实时数据转储的稳定性。

于本发明的一个实施例中,提供了:

(1)一种提高scada系统实时数据转储稳定性的方法,可以包括:

建立scada系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务t1和第二转储任务t2;

启动所述第一转储任务t1和所述第二转储任务t2,并分别通过所述第一转储任务t1和所述第二转储任务t2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;

由所述第一转储任务t1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系数据库中;

当所述第一转储任务t1在进行数据转储过程中出现故障时,根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传,实现自动故障恢复。

在本发明的其他的多种实施方式中:

(2)根据(1)所述的提高scada系统实时数据转储稳定性的方法,其中,所述建立scada系统实时数据转储任务队列可以包括:

设置转储任务配置表;

在所述转储任务配置表中配置所述第一转储任务t1和所述第二转储任务t2;

其中,所述转储任务配置表包括:任务编号以及采集和转储配置信息;所述第一转储任务t1和所述第二转储任务t2的所述任务编号不同,所述采集和转储配置信息均相同。

(3)根据(2)所述的提高scada系统实时数据转储稳定性的方法,其中,所述采集和转储配置信息可以包括以下一种或多种:任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号以及转储目的数据表名。

所述方法还可以包括:在建立scada系统实时数据转储任务队列后,设置所述第一转储任务t1和所述第二转储任务t2的主备关系;

其中,所述第一转储任务t1为主任务,所述第二转储任务t2为备任务。

(4)根据(1)所述的提高scada系统实时数据转储稳定性的方法,其中,所述启动所述第一转储任务t1和所述第二转储任务t2可以包括:

分别启动与所述第一转储任务t1相对应的第一数据采集和转储程序a1,以及与所述第二转储任务t2相对应的第二数据采集和转储程序a2;

通过所述第一数据采集和转储程序a1和所述第二数据采集和转储程序a2访问并记录运行信息到预设的任务同步表y1。

(5)根据(4)所述的提高scada系统实时数据转储稳定性的方法,其中,所述任务同步表y1可以包括:任务编码、任务状态、状态变化时间、数据转储时点;

其中,所述任务编码包括:代表主任务的第一编码m1和代表备任务的第二编码m2;

所述任务状态包括:运行状态x1、故障状态x2、申请状态x3、续传状态x4和工作状态x5。

所述由所述第一转储任务t1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系数据库中可以包括:

通过所述第一数据采集和转储程序a1设置所述任务同步表y1中的所述第一转储任务t1的任务状态为申请状态x3,以申请所述数据转储权;

在获取所述数据转储权后,通过所述第一数据采集和转储程序a1执行正常数据转储任务过程,将采集到的实时数据写入预设的关系库数据表w1中;并将所述任务同步表y1中的任务状态设置为工作状态x5,更新所述数据转储时点和所述状态变化时间。

(6)根据(5)所述的提高scada系统实时数据转储稳定性的方法,其中,所述故障类型包括以下任意一种或多种:转储程序自身故障、程序升级引起的故障和数据库迁移引起的故障。

(7)根据(6)所述的提高scada系统实时数据转储稳定性的方法,其中,当所述故障类型为所述转储程序自身故障时,所述根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传包括:

由所述第二转储任务t2通过所述任务同步表y1的任务状态判断所述第一转储任务t1的故障并申请获取数据转储权;从所述任务同步表y1的数据转储时点和状态变化时间获取所述第一转储任务t1的第一数据断点b1;从所述第二缓冲数据文件中提取包括所述第一数据断点b1的连续数据队列并执行续传过程,以进行断点续传;

当所述第二转储任务t1未出现故障时,持续由所述第二转储任务t2进行断点续传;或者,当所述第一转储任务t1的故障已排除时,由所述第一转储任务t1重新申请所述数据转储权,并获取所述第二转储任务t2的第二数据断点b2,根据所述第一缓冲数据文件中存储的实时数据进行断点续传。

(8)根据(6)所述的提高scada系统实时数据转储稳定性的方法,其中,当所述故障类型为程序升级引起的故障时,所述根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传包括:

由所述第二转储任务t2通过所述任务同步表y1的任务状态判断所述第一转储任务t1的故障并申请获取数据转储权;从所述任务同步表y1的数据转储时点和状态变化时间获取所述第一转储任务t1的第三数据断点b3;从所述第二缓冲数据文件中提取包括所述第三数据断点b3的连续数据队列并执行续传过程,以进行断点续传;

当所述第一转储任务t1未升级完成时,持续由所述第二转储任务t2进行断点续传;当所述第一转储任务t1已升级完成时,由所述第一转储任务t1重新申请所述数据转储权,并获取所述第二转储任务t2的第四数据断点b4,根据所述第一缓冲数据文件中存储的实时数据进行断点续传。

(9)根据(6)所述的提高scada系统实时数据转储稳定性的方法,其中,当所述故障类型为数据库迁移引起的故障时,所述根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传包括:

当所述关系数据库发生迁移,所述第一转储任务t1进行相应的第一配置信息更新,使得数据转储过程出现故障时,由所述第二转储任务t2根据所述迁移和所述第一转储任务t1产生的数据断点不间断地向所述第一缓冲数据文件中存入所采集的实时数据,以实现断点续传,自动故障恢复;

当所述第一转储任务t1完成所述第一配置信息更新,所述第二转储任务t2因所述迁移进行相应的第二配置信息更新时,所述第一转储任务t1根据所述第二转储任务t2产生的数据断点将所采集的实时数据存入所述第一缓冲数据文件中,并将所述第一缓冲数据文件中存储的数据写入迁移后的关系数据库中,以实现断点续传。

于本发明的另一个实施例中,提供了:

(10)一种提高数据采集与监视控制scada系统实时数据转储稳定性的装置,包括:处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其中,当所述指令被所述处理器执行时,实现上述的提高scada系统实时数据转储稳定性的方法。

本发明实施例包括:建立scada系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务t1和第二转储任务t2;启动所述第一转储任务t1和所述第二转储任务t2,并分别通过所述第一转储任务t1和所述第二转储任务t2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;由所述第一转储任务t1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;当所述第一转储任务t1在进行数据转储过程中出现故障时,根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传,实现自动故障恢复。通过该实施例方案,解决scada系统实时数据转储过程中因故障引起的数据断续问题,实现了防止数据转储过程中出现故障后的数据断续,避免了程序故障、升级和数据库迁移等引发的故障无法自动恢复、补齐历史数据行为,保证了数据转储的顺序写入,从而提高了scada系统实时数据转储的稳定性。

本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。

图1为本发明实施例的提高数据采集与监视控制scada系统实时数据转储稳定性方法流程图;

图2为本发明实施例的scada系统实时数据转储方法结构示意图;

图3为本发明实施例的启动第一转储任务t1和第二转储任务t2的方法流程图;

图4为本发明实施例的由第一转储任务t1申请获取数据转储权,并执行正常的数据转储的方法流程图;

图5为本发明实施例的当故障类型为转储程序自身故障时,根据故障类型,由第二转储任务t2进行连续性或暂时性断点续传的方法流程图;

图6为本发明实施例的当故障类型为转储程序自身故障,且第一转储任务t1的故障已排除时,由第一转储任务t1进行断点续传的方法流程图;

图7为本发明实施例的当故障类型为程序升级引起的故障时,根据故障类型,由第二转储任务t2进行连续性或暂时性断点续传的方法流程图;

图8为本发明实施例的当故障类型为数据库迁移引起的故障时,根据故障类型,由第二转储任务t2进行连续性或暂时性断点续传的方法流程图;

图9为本发明实施例的第二转储任务t2根据数据库迁移和第一转储任务t1产生的数据断点向第一缓冲数据文件中存入实时数据之前的方法流程图;

图10为本发明实施例的第一转储任务t1根据第二转储任务t2产生的数据断点将所采集的实时数据存入第一缓冲数据文件中,并将第一缓冲数据文件中存储的数据写入迁移后的关系库数据表中之前的方法流程图;

图11为本发明实施例的提高scada系统实时数据转储稳定性的装置组成框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

实施例一

一种提高数据采集与监视控制scada系统实时数据转储稳定性的方法,如图1、图2所示,可以包括s101-s104:

s101、建立scada系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务t1和第二转储任务t2;

s102、启动所述第一转储任务t1和所述第二转储任务t2,并分别通过所述第一转储任务t1和所述第二转储任务t2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;

s103、由所述第一转储任务t1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系数据库中;

s104、当所述第一转储任务t1在进行数据转储过程中出现故障时,根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传,实现自动故障恢复。

在本发明实施例中,为了解决背景技术中所提出的问题,建立了scada系统实时数据转储任务队列,并行运行多个数据采集和转储程序,建立软件同步运行机制,提供在线运行备份功能,数据采集或转储异常时,实现故障记录和冗余处理,能够较大提高scada系统实时数据转储的稳定性。

实施例二

该实施例在实施例一的基础上,给出了建立scada系统实时数据转储任务队列的一种具体实施方式。

在本发明实施例中,所述建立scada系统实时数据转储任务队列可以包括:

设置转储任务配置表;

在所述转储任务配置表中配置所述第一转储任务t1和所述第二转储任务t2;

其中,所述转储任务配置表包括:任务编号以及采集和转储配置信息;所述第一转储任务t1和所述第二转储任务t2的所述任务编号不同,所述采集和转储配置信息均相同。

在本发明实施例中,可以设置转储任务配置表c2,该转储任务配置表c2中配置两个转储任务分别为第一转储任务t1和第二转储任务t2。第一转储任务t1和第二转储任务t2的任务编号不同,采集和转储配置信息相同。

在本发明实施例中,所述采集和转储配置信息可以包括以下一种或多种:任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号以及转储目的数据表名。

在本发明实施例中,转储任务配置表c2可以包括任务编号、任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号、转储目的数据表名等信息项中的一项或多项。

在本发明实施例中,所述方法还可以包括:在建立scada系统实时数据转储任务队列后,设置所述第一转储任务t1和所述第二转储任务t2的主备关系;其中,所述第一转储任务t1为主任务(m1),所述第二转储任务t2为备任务(m2)。

在本发明实施例中,在转储任务配置表c2中,可以设置第一转储任务t1的任务类型为主任务(m1),设置第二转储任务t2的任务类型为备任务(m2)。

在本发明实施例中,在建立scada系统实时数据转储任务队列之前,可以预先设置的采集数据配置表c1,以便根据该采集数据配置表c1执行不间断的实时数据采集任务。

在本发明实施例中,采集数据配置表c1中可以包含要从scada系统获取并转储的数据项信息,具体可以包含以下任意一项或多项信息:采集任务编号、采集的输入输出io点名称、数据项名称、采集频率、取值方式等。

实施例三

该实施例在实施例一或实施例二的基础上,给出了启动所述第一转储任务t1和所述第二转储任务t2的一种具体实施方式。

在本发明实施例中,如图3所示,所述启动所述第一转储任务t1和所述第二转储任务t2可以包括s201-s202:

s201、分别启动与所述第一转储任务t1相对应的第一数据采集和转储程序a1,以及与所述第二转储任务t2相对应的第二数据采集和转储程序a2;

s202、通过所述第一数据采集和转储程序a1和所述第二数据采集和转储程序a2访问并记录运行信息到预设的任务同步表y1。

在本发明实施例中,可以预先编写与所述第一转储任务t1相对应的第一数据采集和转储程序a1,以及与所述第二转储任务t2相对应的第二数据采集和转储程序a2;再启动第一转储任务t1和第二转储任务t2时,可以分别启动第一数据采集和转储程序a1和第二数据采集和转储程序a2,程序a1和程序a2访问并记录运行信息到任务同步表y1,并记录任务同步表y1中的任务状态为x1(运行)状态。

在本发明实施例中,所述任务同步表y1可以包括:任务编码、任务状态、状态变化时间、数据转储时点;

其中,所述任务编码包括:代表主任务的第一编码m1和代表备任务的第二编码m2;

所述任务状态包括:运行状态x1、故障状态x2、申请状态x3、续传状态x4和工作状态x5。

在本发明实施例中,任务编码(或称任务类型编码)说明:m1(主):主任务;m2(备):备任务。即,在相应的任务编码栏设置m1时,指对应的转储任务为主任务;在相应的任务编码栏设置m2时,指对应的转储任务为备任务。

在本发明实施例中,该任务编码可以包括但不限于字母m1和m2,还可以采用除m1和m2以外的任何数字、字母、字符等。

在本发明实施例中,任务状态说明:

x1(运行):软件启动后,在任务同步表y1的任务状态项写入该状态;

x2(故障):软件转储出现异常,在任务同步表y1的任务状态项写入该状态;

x3(申请):申请执行数据转储任务,当任务状态不在转储(非续传状态和非工作状态)或更新时间已失效(如更新时间小于60秒的记录),则可将任务状态更新为申请状态;

x4(续传):执行断点续传工作;

x5(工作):执行实时转储工作。

在本发明实施例中,该任务状态的表示方式可以包括但不限于字母x1-x5,还可以采用除x1-x5以外的任何数字、字母、字符等。

在本发明实施例中,数据采集和转储任务程序的实现方式可以选择opc方式或接口调用方式。

实施例四

该实施例在上述任意实施例的基础上,给出了分别通过所述第一转储任务t1和所述第二转储任务t2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件的一种具体实施方式。

在本发明实施例中,可以按照预先设置的采集数据配置表c1信息从scada系统获取实时数据,数据采集和转储程序启动后,该程序可以执行不间断的实时数据采集任务。

在本发明实施例中,分别通过所述第一转储任务t1和所述第二转储任务t2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件具体可以包括:不间断执行第一转储任务t1的采集过程k1_1和写入缓冲数据过程k3_1;并不间断执行第二转储任务t2的采集过程k1_2和写入缓冲数据过程k3_2。

在本发明实施例中,不间断执行第一转储任务t1的采集过程k1_1和写入缓冲数据过程k3_1可以包括:第一转储任务t1的第一数据采集和转储程序a1按照采集数据配置表c1列表,执行采集过程k1_1,从scada实时库获取实时数据;执行k3_1过程,将实时数据写入第一缓冲数据文件f1。

在本发明实施例中,不间断执行第二转储任务t2的采集过程k1_2和写入缓冲数据过程k3_2可以包括:第二转储任务t2的第二数据采集和转储程序a2按照采集数据配置表c1列表,执行采集过程k1_2,从scada实时库获取实时数据;执行k3_2过程,将实时数据写入第二缓冲数据文件f2。

实施例五

该实施例在上述任意实施例的基础上,给出了第一转储任务t1申请获取数据转储权的一种具体实施方式。

在本发明实施例中,如图4所示,由所述第一转储任务t1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系数据库中可以包括s301-s302:

s301、通过所述第一数据采集和转储程序a1设置所述任务同步表y1中的所述第一转储任务t1的任务状态为申请状态x3,以申请所述数据转储权;

s302、在获取所述数据转储权后,通过所述第一数据采集和转储程序a1执行正常数据转储任务过程,将采集到的实时数据写入预设的关系库数据表w1中;并将所述任务同步表y1中的任务状态设置为工作状态x5,更新所述数据转储时点和所述状态变化时间。

在本发明实施例中,可以通过第一数据采集和转储程序a1执行数据转储权申请过程k2_1,以使得标记为主任务的第一转储任务t1申请获取数据转储权。具体地,可以通过第一数据采集和转储程序a1设置任务同步表y1中第一转储任务t1的相应任务状态为x3(申请)状态,以申请数据转储权。

在本发明实施例中,也可以首先通过第二数据采集和转储程序a2执行数据转储权申请过程k2_2,以使得标记为副任务的第二转储任务t2申请获取数据转储权。具体地可以根据实际应用场景自行定义,在此不做具体限制。

在本发明实施例中,第一转储任务t1获取数据转储权后,执行正常数据转储,将实时数据写入关系库数据表,具体可以包括:第一转储任务t1的第一数据采集和转储程序a1执行正常数据转储任务过程k5_1,将采集到的实时数据写入数据表w1中,任务同步表y1中第一转储任务t1的任务状态设置为x5(工作)状态,更新数据转储时点和状态变化时间。第一转储任务t1继续不间断执行转储任务过程k5_1。

在本发明实施例中,数据表w1中可以包括但不限于下述的任意一项或多项:io(输入输出)点代码、数据项名称、值以及采集时间等

实施例六

该实施例在上述任意实施例的基础上,给出了数据转储过程中的几种可能发生的故障类型实施例。

在本发明实施例中,所述数据转储过程中的故障可以包括但不限于以下任意一种或多种:转储程序自身故障、程序升级引起的故障和数据库迁移引起的故障。

在本发明实施例中,下面将对每种故障类型做详细说明:

(1)转储任务故障场景(转储程序自身故障)的原因可以包括:程序异常、数据转储写入异常。在该场景下,出现故障的转储任务不能继续执行数据转储,则可以通过另一个正常的转储任务进行断点续传,继续进行数据转储。

(2)数据采集和转储程序升级场景(程序升级引起的故障)——原因可以包括:第一数据采集和转储程序a1升级前关闭;

(3)数据库迁移场景(数据库迁移引起的故障)——原因可以包括:数据库迁移前关闭。

实施例七

该实施例在实施例六的基础上,给出了基于第一种故障类型(转储程序自身故障)进行断点续传的一种具体实施方式。

在本发明实施例中,如图5所示,当所述故障类型为所述转储程序自身故障时,所述根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传可以包括s401-s402:

s401、由所述第二转储任务t2通过所述任务同步表y1的任务状态判断所述第一转储任务t1的故障并申请获取数据转储权;从所述任务同步表y1的数据转储时点和状态变化时间获取所述第一转储任务t1的第一数据断点b1;从所述第二缓冲数据文件中提取包括所述第一数据断点b1的连续数据队列并执行续传过程,以进行断点续传;

s402、当所述第二转储任务t1未出现故障时,持续由所述第二转储任务t2进行断点续传;或者,当所述第一转储任务t1的故障已排除时,由所述第一转储任务t1重新申请所述数据转储权,并获取所述第二转储任务t2的第二数据断点b2,根据所述第一缓冲数据文件中存储的实时数据进行断点续传。

在本发明实施例中,第一转储任务t1的第一数据采集和转储程序a1执行数据转储任务过程k5_1出现故障后,第一数据采集和转储程序a1的故障记录过程k4_1,可以将故障数据时点记录到任务故障表y2中,任务故障表y2中的恢复状态项标记为未恢复,任务同步表y1中第一转储任务t1对应的任务状态设置为x2(故障)状态,并更新状态变化时间。

在本发明实施例中,第一转储任务t1故障,第二转储任务t2执行断点续传实现故障恢复过程,具体可以包括:1、第二转储任务t2判断第一转储任务t1故障并申请获取数据转储权;即,第二转储任务t2访问任务同步表y1判断第一转储任务t1故障,第二转储任务t2申请并获取数据转储权,任务同步表y1中第二转储任务t2相对应的任务状态赋为x3(申请)状态;2、从任务状态表y1中获取第一转储任务t1的数据断点,标记为第一数据断点b1;3、对第一数据断点b1进行断点续传,实现故障恢复;即,第二数据采集和转储程序a2执行提取缓冲数据过程k3_2,从第二缓冲数据文件f2中提取缓冲数据,获取包括第一数据断点b1的连续数据队列并执行续传过程k5_2(该续传过程k5_2也是第二转储任务t2的正常数据转储任务过程);完成断点续传后,更改预设的任务故障表y2的恢复状态为已恢复,并更新所述任务同步表y1的数据转储时点和状态变化时间。

在本发明实施例中,第二数据采集和转储程序a2不间断执行数据转储任务过程k5_2期间,将采集到的实时数据写入数据表w1,任务同步表y1中第二转储任务t2的任务状态设置为x5(工作)状态。

在本发明实施例中,如果在第二转储任务t2执行正常的数据转储任务过程k5_2期间,第一转储任务t1的故障已排除,可以继续执行正常的数据转储任务,则第一转储任务t1可以重新申请获取数据转储权;以继续通过第一转储任务t1将实时数据写入数据表w1中。

在本发明实施例中,上述的任务故障表y2中的恢复状态可以采用不同的状态标识来表示,该状态标识可以包括但不限于数值01和02,其中,01可以表示未恢复,02可以表示已恢复;在其它实施例中,还可以采用除01和02以外的任何数字、字母、字符等。

实施例八

该实施例在上述实施例七的基础上,给出了第二转储任务t2出现故障后述第一转储任务t1进行断点续传的一种具体实施方式。

在本发明实施例中,如图6所示,所述当所述第一转储任务t1的故障已排除时,由所述第一转储任务t1根据所述第一缓冲数据文件中存储的实时数据进行断点续传可以包括s501-s504:

s501、由所述第一转储任务t1通过所述任务同步表y1的任务状态判断所述第二转储任务t2的故障并申请获取数据转储权;

s502、从所述任务同步表y1的数据转储时点和状态变化时间获取所述第二转储任务t2的第二数据断点b2;

s503、从所述第一缓冲数据文件中提取包括所述第二数据断点b2的连续数据队列并执行续传过程,以进行断点续传;

s504、完成所述断点续传后更改预设的任务故障表y2的恢复状态为已恢复,并更新所述任务同步表y1的数据转储时点和状态变化时间。

在本发明实施例中,第二转储任务t2的第二数据采集和转储程序a2执行正常的数据转储任务过程k5_2出现故障后,第二数据采集和转储程序a2的故障记录过程k4_2,可以将故障数据时点记录到任务故障表y2中,任务故障表y2中的恢复状态项标记为未恢复,任务同步表y1中第二转储任务t2对应的任务状态设置为x2(故障)状态,并更新状态变化时间。

在本发明实施例中,第二转储任务t2故障,第一转储任务t1实现故障恢复过程,具体可以包括:1、第一转储任务t1判断第二转储任务t2故障并申请获取数据转储权;即,第一转储任务t1访问任务同步表y1判断第二转储任务t2故障,第一转储任务t1申请并获取数据转储权,任务同步表y1中第一转储任务t1相对应的任务状态赋为x3(申请)状态;2、从任务状态表y1中获取第二转储任务t2的数据断点,标记为第二数据断点b2;3、对第二数据断点b2进行断点续传,实现故障恢复;即,第一数据采集和转储程序a1执行提取缓冲数据过程k3_1,从第一缓冲数据文件f1中提取缓冲数据,获取包括第二数据断点b2的连续数据队列并执行续传过程k5_1(该续传过程k5_1也是第一转储任务t1的正常数据转储任务过程);完成断点续传后,更改任务故障表y2的恢复状态为已恢复,更新数据转储时点和状态变化时间。

在本发明实施例中,第一数据采集和转储程序a1不间断执行数据转储任务过程k5_1期间,将采集到的实时数据写入数据表w1,任务同步表y1中第一转储任务t1的任务状态设置为x5(工作)状态。

实施例九

该实施例在实施例六的基础上,给出了基于第二种故障类型(程序升级引起的故障)进行断点续传的一种具体实施方式。

在本发明实施例中,如图7所示,当所述故障类型为程序升级引起的故障时,所述根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传可以包括s601-s602:

s601、由所述第二转储任务t2通过所述任务同步表y1的任务状态判断所述第一转储任务t1的故障并申请获取数据转储权;从所述任务同步表y1的数据转储时点和状态变化时间获取所述第一转储任务t1的第三数据断点b3;从所述第二缓冲数据文件中提取包括所述第三数据断点b3的连续数据队列并执行续传过程,以进行断点续传;

s602、当所述第一转储任务t1未升级完成时,持续由所述第二转储任务t2进行断点续传;当所述第一转储任务t1已升级完成时,由所述第一转储任务t1重新申请所述数据转储权,并获取所述第二转储任务t2的第四数据断点b4,根据所述第一缓冲数据文件中存储的实时数据进行断点续传。

在本发明实施例中,第一转储任务t1的第一数据采集和转储程序a1可能存在因升级而造成的第一转储任务t1故障,在第一数据采集和转储程序a1升级之前,会关闭第一数据采集和转储程序a1,第一转储任务t1故障发生,形成第三数据断点b3。

在本发明实施例中,第二转储任务t2进行断点续传实现故障恢复过程,具体可以包括:

1、第二转储任务t2判断第一转储任务t1故障并申请获取数据转储权;即,第二转储任务t2访问任务同步表y1判断第一转储任务t1故障,第二转储任务t2申请并获取数据转储权,任务同步表y1中第二转储任务t2相对应的任务状态赋为x3(申请)状态;

2、从任务状态表y1中获取第一转储任务t1的数据断点,标记为第三数据断点b3;

3、对第三数据断点b3进行断点续传,实现故障恢复;即,第二数据采集和转储程序a2执行提取缓冲数据过程k3_2,从第二缓冲数据文件f2中提取缓冲数据,获取包括第三数据断点b3的连续数据队列并执行续传过程k5_2(该续传过程k5_2也是第二转储任务t2的正常数据转储任务过程);完成断点续传后,更改预设的任务故障表y2的恢复状态为已恢复,并更新所述任务同步表y1的数据转储时点和状态变化时间。

在本发明实施例中,在第二转储任务t2进行断点续传过程中,第一转储任务t1的第一数据采集和转储程序a1升级完成后,可以恢复运行该第一数据采集和转储程序a1,即所述第一转储任务t1重新申请所述数据转储权,并获取所述第二转储任务t2的第四数据断点b4,执行数据转储过程k5_1,根据所述第一缓冲数据文件中存储的实时数据基于第四数据断点b4进行断点续传;将采集到的实时数据写入数据表w1,任务同步表y1中第一转储任务t1的任务状态设置为x5(工作)状态,并且第一转储任务t1执行不间断转储过程k5_1。

在本发明实施例中,道理同上,第二转储任务t2的第二数据采集和转储程序a2也可能存在因升级而造成的第二转储任务t2故障,在第二数据采集和转储程序a2升级之前,会关闭第二数据采集和转储程序a2,第二转储任务t2故障发生,形成数据断点。此时,恢复正常的所述第一转储任务t1可以重新申请所述数据转储权,并获取所述第二转储任务t2的数据断点,执行数据转储过程k5_1,根据所述第一缓冲数据文件中存储的实时数据基于该数据断点进行断点续传;将采集到的实时数据写入数据表w1,任务同步表y1中第一转储任务t1的任务状态设置为x5(工作)状态,并且第一转储任务t1执行不间断转储过程k5_1。

实施例十

该实施例在实施例六的基础上,给出了基于第三种故障类型(数据库迁移引起的故障)进行断点续传的一种具体实施方式。

在本发明实施例中,如图8所示,当所述故障类型为数据库迁移引起的故障时,所述根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传可以包括s701-s702:

s701、当所述关系数据库发生迁移,所述第一转储任务t1进行相应的第一配置信息更新,使得数据转储过程出现故障时,由所述第二转储任务t2根据所述迁移和所述第一转储任务t1产生的数据断点不间断地向所述第一缓冲数据文件中存入所采集的实时数据,以实现断点续传,自动故障恢复;

s702、当所述第一转储任务t1完成所述第一配置信息更新,所述第二转储任务t2因所述迁移进行相应的第二配置信息更新时,所述第一转储任务t1根据所述第二转储任务t2产生的数据断点将所采集的实时数据存入所述第一缓冲数据文件中,并将所述第一缓冲数据文件中存储的数据写入迁移后的关系数据库中,以实现断点续传。

在本发明实施例中,如图9所示,在由所述第二转储任务t2根据所述迁移和所述第一转储任务t1产生的数据断点不间断地向所述第一缓冲数据文件中存入所采集的实时数据之前,所述方法还可以包括s801-s802:

s801、由所述第二转储任务t2通过所述任务同步表y1的任务状态判断所述第一转储任务t1的故障并申请获取数据转储权;

s802、从所述任务同步表y1的数据转储时点和状态变化时间获取第一数据断点b1和第二数据断点b2;其中,所述第一数据断点b1是所述关系数据库迁移前关闭关系数据库连接形成的数据断点,所述第二数据断点b2是所述关系数据库迁移完成后,所述第一数据采集和转储程序a1进行所述第一配置信息更新时形成的数据断点。

在本发明实施例中,所述由所述第二转储任务t2根据所述迁移和所述第一转储任务t1产生的数据断点不间断地向所述第一缓冲数据文件中存入所采集的实时数据可以包括:

获取所述第一数据断点b1和所述第二数据断点b2之间的连续实时数据队列,并存储到所述第一缓冲数据文件中。

在本发明实施例中,在执行数据转储任务期间,可能会存在数据库迁移的现象发生,在数据库迁移前,通常会关闭数据库连接,形成数据断点,即上述的第一数据断点b1。数据库完成迁移后,数据库恢复正常,此时,升级并运行第一转储任务t1的第一数据采集和转储程序a1,即所述第一数据采集和转储程序a1更新配置信息并重启所述第一转储任务t1时形成新的数据断点,即上述的第二数据断点b2。

在本发明实施例中,第一转储任务t1的第一数据采集和转储程序a1执行数据转储任务过程k5_1出现故障后,第一数据采集和转储程序a1的故障记录过程k4_1,可以将故障数据时点记录到任务故障表y2中,任务故障表y2中的恢复状态项标记为未恢复,任务同步表y1中第一转储任务t1对应的任务状态设置为x2(故障)状态,并更新状态变化时间。

在本发明实施例中,第一转储任务t1因数据库迁移发生故障,第二转储任务t2执行断点续传实现故障恢复过程,具体可以包括:1、第二转储任务t2判断第一转储任务t1故障并申请获取数据转储权;即,第二转储任务t2访问任务同步表y1判断第一转储任务t1故障,第二转储任务t2申请并获取数据转储权,任务同步表y1中第二转储任务t2相对应的任务状态赋为x3(申请)状态;2、从任务状态表y1中获取该第一数据断点b1和第二数据断点b2;3、进行从所述第一数据断点b1到所述第二数据断点b2的断点续传,实现故障恢复;即,第二数据采集和转储程序a2执行提取缓冲数据过程k3_2,获取所述第一数据断点b1到所述第二数据断点b2之间的连续实时数据队列并执行续传过程k5_2(该续传过程k5_2也是第二转储任务t2的正常数据转储任务过程),将该连续实时数据队列存储到第一缓冲数据文件f1中;完成断点续传后,更改预设的任务故障表y2的恢复状态为已恢复,并更新所述任务同步表y1的数据转储时点和状态变化时间。

在本发明实施例中,如图10所示,在第一转储任务t1根据所述第二转储任务t2产生的数据断点将所采集的实时数据存入所述第一缓冲数据文件中,并将所述第一缓冲数据文件中存储的数据写入迁移后的关系库数据表中之前,所述方法还可以包括s901-s902:

s901、由所述第一转储任务t1通过所述任务同步表y1的任务状态判断所述第二转储任务t2的故障并申请获取数据转储权;

s902、从所述任务同步表y1的数据转储时点和状态变化时间获取第三数据断点b3;其中,所述第三数据断点b3是所述第二数据采集和转储程序a2进行所述第二配置信息更新时形成的数据断点。

在本发明实施例中,所述第一转储任务t1根据所述第二转储任务t2产生的数据断点将所采集的实时数据存入所述第一缓冲数据文件中,并将所述第一缓冲数据文件中存储的数据写入迁移后的关系数据库中可以包括:

获取所述第二数据断点b2和所述第三数据断点b3之间的连续实时数据队列,存储到所述第一缓冲数据文件中,并将所述第一缓冲数据文件中存储的所述第一数据断点b1和所述第三数据断点b3之间的数据写入迁移后的关系数据库中。

在本发明实施例中,数据库完成迁移后,数据库恢复正常,此时也可以升级并运行第二转储任务t2的第二数据采集和转储程序a2,即所述第二数据采集和转储程序a2也可以更新配置信息并重启所述第二转储任务t2,从而形成新的数据断点,即上述的第三数据断点b3。

在本发明实施例中,第二转储任务t2的第二数据采集和转储程序a2执行正常的数据转储任务过程k5_2出现故障后,第二数据采集和转储程序a2的故障记录过程k4_2,可以将故障数据时点记录到任务故障表y2中,任务故障表y2中的恢复状态项标记为未恢复,任务同步表y1中第二转储任务t2对应的任务状态设置为x2(故障)状态,并更新状态变化时间。

在本发明实施例中,上述的任务故障表y2中的恢复状态可以采用不同的状态标识来表示,该状态标识可以包括但不限于数值01和02,其中,01可以表示未恢复,02可以表示已恢复;在其它实施例中,还可以采用除01和02以外的任何数字、字母、字符等。

在本发明实施例中,第二转储任务t2因数据库迁移发生故障,第一转储任务t1执行断点续传实现故障恢复过程,具体可以包括:1、第一转储任务t1判断第二转储任务t2故障并申请获取数据转储权;即,第一转储任务t1访问任务同步表y1判断第二转储任务t2故障,第一转储任务t1申请并获取数据转储权,任务同步表y1中第一转储任务t1相对应的任务状态赋为x3(申请)状态;2、从任务状态表y1中获取第二转储任务t2的第三数据断点b3;3、进行从所述第二数据断点b2到所述第三数据断点b3的断点续传,将采集的实时数据存储到第一缓冲数据文件f1中,实现故障恢复;即,第一数据采集和转储程序a1执行采集过程k1_1,获取所述第二数据断点b2到所述第三数据断点b3之间的连续实时数据,并执行数据缓冲过程k3_1,将该连续实时数据存储到第一缓冲数据文件f1中。并执行续传过程k5_1(该续传过程k5_1也是第一转储任务t1的正常数据转储任务过程),从第一缓冲数据文件f1中提取第一数据断点b1到第三数据断点b3之间的连续数据队列,存储到关系库数据表w1中,实现断点续传;完成断点续传后,更改预设的任务故障表y2的恢复状态为已恢复,并更新所述任务同步表y1的数据转储时点和状态变化时间。

在本发明实施例中,需要说明的是,在第一转储任务t1进行更新和重启期间,第二转储任务t2进行断点续传时,也可以将第一数据断点b1和第二数据断点b2之间的实时数据继续存储到第二缓冲数据文件f2中,在第一转储任务t1更新并重启完成后,第二转储任务t2进行更新和重启期间,第一转储任务t1可以从第二缓冲数据文件f2中获得第一数据断点b1和第二数据断点之间的实时数据,转储到关系库数据表w1中,并获取第二数据断点b2和第三数据断点b3之间的实时数据,存储到第一缓冲数据文件f1中,并从第一缓冲数据文件f1转储到关系库数据表w1中,从而实现scada系统中关系数据库的平滑迁移。

实施例十一

一种提高scada系统实时数据转储装置1,如图11所示,可以包括:处理器11和计算机可读存储介质12,所述计算机可读存储介质12中存储有指令,当所述指令被所述处理器11执行时,实现上述的提高scada系统实时数据转储稳定性的方法。

本发明实施例包括:建立scada系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务t1和第二转储任务t2;启动所述第一转储任务t1和所述第二转储任务t2,并分别通过所述第一转储任务t1和所述第二转储任务t2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;由所述第一转储任务t1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;当所述第一转储任务t1在进行数据转储过程中出现故障时,根据故障类型,由所述第二转储任务t2根据所述第二缓冲数据文件中存储的实时数据进行连续性或暂时性断点续传,实现自动故障恢复。通过该实施例方案,解决scada系统实时数据转储过程中出现的因软件故障原因引起的数据断续问题,实现了防止数据转储程序异常后出现的数据断续,避免了故障、升级和迁移等引发的故障无法自动恢复、补齐历史数据行为,保证了数据转储的顺序写入,从而提高了scada系统实时数据转储的稳定性。

本发明实施例方案至少包括以下有益效果:

1、本发明实施例对scada系统数据转储系统出现的故障,能够减少人工维护成本,保证上层应用数据的合理性和正确性;

本发明实施例能够实现发生故障后断点数据缓冲和自动转储功能,对于保证获取scada系统连续的实时运行数据,起到较好的数据保障功能,提高了整个应用的抗故障能力,通过该自愈功能减少人工维护的成本,也能够保证上层应用数据的合理性和正确性。

2、本发明实施例对于scada系统数据业务整合系统,经常需要变更数据转储地址和升级转储业务功能的scada系统上层软件,能够快速实现业务升级,发挥很好了稳定的历史数据连续转储功能;

通过scada系统实时数据转储任务在线冗余、scada系统实时数据转储断点续传等业务功能,本发明能够解决数据采集和转储程序升级、数据库迁移的业务数据断点问题,实现业务数据自动恢复处理和无断点升级效果。

3、数据采集和转储程序升级工作通过该实施例方案,升级过程实现数据无损失:数据转储任务通过在线冗余的手段,当关闭并升级一个数据采集和转储程序升级时,系统会自动判断断点,自动实现断点续传,实现数据无损失。

4、数据库迁移工作通过该实施例方案,实现数据无损失迁移:数据库迁移后需升级数据转储任务,通过顺序操作数据库迁移、数据采集和转储程序a1升级、数据采集和转储程序a2升级,自动完成断点续传,保证数据连续性和准确性。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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