调度自动化系统中数据库模型研究
2012-05-18江西赣州供电公司
江西赣州供电公司 傅 裕
1.引言
调度自动化系统[1]主要用于对电力系统中复杂的网络拓扑结构进行调度和管理,综合利用计算机、远动和远程通信技术,对电网运行的设备进行监视、控制、调度,以实现电力系统调度管理自动化,有效地帮助调度员完成调度任务。
调度自动化系统经过了一系列的发展过程:最原始的调度系统主要通过电话进行,到20世纪60年代发展成远动模拟屏,直到80年代后计算机的兴起,才出现了功能强大的SCADA和EMS。SCADA即数据采集和监视控制系统,主要的功能是完成数据的收集、处理解释、存储和显示,然后把这些信息传递给其它模块。EMS即能量管理系统,它是基于计算机技术的现代电力综合自动化系统,主要应用包括:大区级电网和省市级电网调度中心,监测电网各类实时信息,并对电网进行调度决策管理和控制,保障电网的运行安全,提高电网质量并降低电网运行的经济成本。
数据库系统是调度自动化系统的重要组成部分,甚至可以说是其核心部分,因为系统最终的操作对象都是各种各样的数据,自动调度系统现在已经发展出各类各样的形式,但其中的数据库部分都是所有系统的性能关键。数据库系统需要有组织、动态地存储大量的电网数据,同时让多个用户能同时获取这些数据。
然而调度自动化系统中的数据库与传统计算机系统中的数据库有着较大的不同[2],传统的数据库主要是关系型数据库,这类数据库主要用于存储持久性数据,即对数据库中数据的修改不是非常频繁,商用的关系型数据库主要有IBM公司的DB2,甲骨文公司的Oracle,开源数据库MySQL和微软公司的SQL Server。但是这些传统的关系型数据库在现代实时工程和时间关键型应用中却表现不好,因而有了实时数据库技术的需求。实时数据库系统(RTDBS:Real-Time Database System)将数据库技术应用到实时系统中,其相对传统的数据库技术要更为复杂,发展也相对落后。
2.调度自动化系统数据特点
调度自动化系统中的数据与一般的计算机系统数据有较大的不同,主要体现在如下几个方面:
(1)数据处理的时限性。传统的应用系统中数据最重要的是保证其完整性和一致性,而在调度自动化系统中,数据不仅要完整、一致,同时更重要的是数据和对数据的处理具有严格的时限性,系统的正确性不仅仅取决于事务处理结果的逻辑性,还决定于这个处理过程需要在限定的时间内完成。超过这个时限,即使处理的逻辑结果是正确的,对系统而言,可能这个“正确”但超时的结果仍然给系统带来了负面影响,因此系统会认为这个处理是失败的。
(2)数据处理任务的并发性。传统的数据库即历史数据库中的数据是相对持久的,数据存储以后对其修改不频繁,而调度自动化系统中有着大量的数据需要实时同步,即时刻保持数据库系统中的数据与现场真实数据的同步,一般来说可以采用间隔较短的时间对数据库进行刷新来完成同步。这就要求实时数据库能响应足够频繁的大批量的并发的数据访问,应对这一特点,实时数据库一般采用内存数据库的方式,即将数据保存在内存中以获得快速访问的能力,而不是将数据保存在低速的磁盘上。
(3)数据的可恢复性。数据的可恢复性,指的是数据库系统在发生故障后能恢复到发生故障前的状态。而调度自动化系统在发生单点故障后,要求系统在一个数据更新周期内恢复正常工作。传统的数据恢复主要是通过日志和覆盖方式,而调度自动化系统实时数据有着自己的特点,即实时数据库中的数据很多都是短暂存在的,可能经过一小段时间后就会被更改,因此有时故障的发生对系统的影响同样也是短暂存在的,而不会影响到系统以后的状态。因此需要针对性的策略来处理调度自动化系统中的数据恢复流程。
调度自动化系统中数据的以上特点也就是对实时数据库提出的要求,实时数据库系统非常强调数据及其处理的时限性,宁可数据的相对不准确,也不要超时的数据结果。
3.实时数据库原理及模型
实时数据库不是数据库与实时操作系统的简单结合,而是数据和事务都有显式定时限制的数据库[3]。只有把这两者的原理、方法、技术与结构结合到一起的实时数据库才能同时满足数据和事务处理的实时性要求。数据的时效性体现在一个数据对象的三个主要属性:当前值、采样时间、采样频率。如图1所示。
而事务的定时限制即实时数据处理(实时事务)有定时限制(定时可以是绝对、相对或周期时间),超过时限即事务处理失败。
图1 数据对象的三个属性
图2 通用实时数据库模型
图3 内存数据管理
图4 历史数据处理流程
一般的数据库功能有:(1)数据存取,各类数据操作、查询处理、存取方式、完整性检查;(2)持久数据管理,包括数据库的定义、存储、维护等;(3)事务管理,事务的定义、调度和并发控制、执行管理;(4)存取控制安全性检验;(5)数据库的可靠性恢复机制。
而实时数据库(RTDBS)特有如下功能:(1)数据库状态的实时性,即数据库的状态是现实的真实状态的反映;(2)数据值的时间一致性,即事务处理过程所访问的数据是时间一致的;(3)事务处理的实时性,即事务及时处理,满足其定时限制。
实时数据库系统的一般结构模型如图2所示,主要有实时数据管理、历史数据管理、实时事务管理三大块,这三部分是构成实时数据库的基本功能模块。安全管理、多服务器支持等是外层的东西。
4.内存中数据的管理
如图3,在实时数据库系统中,为了提高存取速度,要使用大内存作为其主要存储介质,减少活动期间的磁盘I/O,从而满足实时事务的定时限制[4]。而计算机的物理内存是有限的,内存中常驻的数据一定为存取频率高频数据。
(1)内存中数据的内容
内存中的数据分两种,动态数据和静态数据。静态数据指系统信息,用户信息,数据库结构和组态信息等相对静态并且经常访问的信息。动态数据有两个缓冲池组成:数据缓冲池和程序缓冲池。缓冲池为椎栈式结构。
数据缓冲池有包括三部分内容:实时数据缓冲池,保存了当前一段时间内(如前一个小时)的实时数据;历史数据缓冲池,它的大小是设定的,保存了当前一段时间内最后访问的历史数据;报警数据缓冲池,它的大小是设定的,保存了当前一段时间内最后访问的报警数据。
程序缓冲池,它的大小是设定的,保存了当前一段时间内最后执行的数据库系统程序代码。
(2)内存管理
将可用的内存空间逻辑地划分为“分区”,每一分区存储一种数据,每一分区由若干“段”组成。段是内存中固定长度的连续区域,是内存与外存进行数据交换的单位。为了提高检索速度,在每一分区的最前段,系统维护了一个段的索引。
(3)内存和磁盘数据的交换
内存相对磁盘有着很大的速度优势,但是内存容量却相对小很多,随着调度自动化系统中数据规模的增大,将所有数据放在内存中是不切实际的,因此需要有策略地将数据分别存储。应遵循如下原则:静态数据和关键数据必须常驻内存中且不能被交换出去;新出现的数据在首次处理请求前不能被交换出去;优先级高的事务数据在事务 的活动期不能被交 换出去。
5.系统进程的管理
实时数据库系统是一个多进程,多线程的复杂系统,其各个进程的优先级是动态变化的。各个功能模块进程都是相对独立的应用程序,共同完成实时数据库系统的管理、控制与操纵。它们的主要任务是事件处理、存储管理以及系统首次启动时的初始化。其中事件处理包括数据操纵、触发器管理和事件管理三个部分。
数据操纵负责数据库的操作(包括数据的插入、删除、修改和查询等)、查询优化和数据库控制(包括完整性、安全性控制等)。
触发器管理的主要功能有:事件探测、复合事件处理和发信号;条件的监视与评价;被触发活动的执行处理。
事件管理主要负责:各种事件操作(开始、中止、挂起、恢复、结束等);实时优先级分派;实时调度算法;实时并发控制策略。可以采用一种多级调度策略:第一级用于区分实时与非实时事件,第二级用于区分硬事件和软事件,第三级则对不同事件采用不同的调度策略。该调度策略能很好地满足实时应用的要求。并发控制则采用一种乐观方法与封锁机制相结合的策略,既维护数据库的一致性又尽量满足事件的时间限制。
在调度自动实时数据库系统的运行过程中,通常有四个事务或程序同时执行:触发事件,监控器(包括事件探测器、事件处理器、条件评价器),被触发的活动,事件管理及调度程序。它们的工作流程如下:当有外部请求、时钟或事件条件发生时,首先将其通知给触发器和监控器,然后监控器启动事件探测器和处理器进行探测处理。如果检测到的是一个事件,则向监控器发出信号,再调用状态评价器,并按优先级顺序对所有情形进行评价。然后根据评价结果进行相关处理。最后解除触发事务的挂起状态,恢复系统的正常运行。
6.历史数据处理过程
历史数据的处理[5]是实时数据库系统的重要组成部分,可通过如图4的策略来进行。
首先是系统的启动,启动以后最先要做的就是读取系统的组态信息,这是一个初始化的过程,目的是获得系统的各个参数。历史数据处理过程中包含两类文件:索引文件和数据文件。由于数据规模一般都非常大,因此采用文件组的方式在磁盘上进行存储,索引文件的功能便是建立磁盘上文件组的Index,用于以后的查询或修改。索引文件尺寸较小,存储的是索引而不是内容。读取索引后就可以根据索引进行数据文件的创建,索引文件中包含磁盘数据文件的相关信息以及存储路径等等。因此获得了索引文件就相当于获得了一本书的目录,要想查阅具体某项内容可以直接通过页码进入,从而加速了查询过程。
接着是获得需要转存的实时数据,根据本文第四部分内存数据管理中所述的策略,需要将部分实时数据转换为历史数据,以解决物理内存容量有限的问题。实时数据可以通过压缩后再保存到数据文件,调度自动化系统的数据规模一般比较大,通过压缩可以很好地减少磁盘的使用,从而降低经济成本。实时数据的压缩分为两类:有规律数据的压缩和无规律数据的压缩。
有规律数据采用逻辑压缩方法。在一段时间内,相邻的数据在精度允许范围内,常常会满足某种线性规律,如果我们利用这个规律,就可以对采集来的数据进行压缩处理,不必要逐点保存。比如计算机图形中的矢量图存储量非常小,因为其保存的不是图形的每个像素点的值,而是用矢量描述的图形,一条线段只需要两个点(起点和终点)就可以描述出来,所以通过找到数据间的关系进行压缩存储是非常好的方法。
而对于无规律数据则采用物理压缩方法。无规律数据即数据的变化是随机的,无规律可寻,如设备发生故障时产生的数据。这类数据的压缩则只能靠普通的数据压缩方法来进行压缩,因此相对有规律数据其压缩率要小的多。
将压缩后的数据写入数据文件,如果已创建的数据文件都已写满,就需要更新索引文件,在索引文件中添加新的数据文件条目;如果数据文件未写满,则继续获取新的实时数据,重复压缩再写入的过程。
7.实时数据库的事务处理
实时数据库中的事务有着定时性和语义相关性两大特点。定时性来源于外部显式给定的事务处理时限和要处理数据随时间变化两个方面;语义相关性包括结构相关、数据相关和功能替代/结果补偿这几个方面。
实时事务处理中的一个关键问题是可预测性。在一个独立的事务上下文中,可预测性关系着这样的问题:事务处理是否能按时完成?如果一个严格实时的事务错过了定时期限,它将导致严重的后果,我们也可以说它的过期给系统带来了大的负面影响,因此,我们需要在这类事务处理前进行预测。这种预测只有在我们知道这个事务的最坏情况处理时长和它所需要的数据资源的条件下才能完成。同时,知道最差预测和实际情况间存在差别也是非常重要的。如果能在一个事务处理前就知道它将在时限内完成不了,就可以让系统丢弃这个事务,从而避免在这个事务上花费时间,同时不会产生因事务处理失败而导致的数据恢复。
一个事务的执行路径依赖于它所访问的数据项的值,因此预测一个事务的最坏执行时间可以根据它所依赖的数据来进行。由于实时数据库一般采用定时刷新的方式进行数据同步,我们可以统计各类数据的平均访问时间,而一个事务的最坏执行时间可以设定为它所需要的数据的平均访问时间的和,也可以再乘以一个大于1的系数,具体可根据不同的系统来进行系数调整。
8.结束语
调度自动化系统在电力系统中发挥着非常重要的作用,作为其核心的数据库部分是研究的重点。本文首先分析了调度自动化系统中数据的特点,强调其时限性、处理的并发性和可恢复性,接着分析了实时数据库的原理并提出一种通用的模型,比较了其与普通历史数据库的异同,然后本文详细分析了实时数据库模型中的四个主要部分:内存数据的管理、系统进程的管理、历史数据的处理和实时事务处理。这四个部分是针对实时数据库的特点而设计的,能够很好地发挥实时数据库在调度自动化系统的作用,促进我国电网调度系统的发展。
[1]姚建国,杨胜春,高宗和,杨志宏.电网调度自动化系统发展趋势展望[J].电力系统自动化,2007(13).
[2]谈苏伟.电网调度自动化前置子系统实时数据库的设计与实现[J].电力自动化设备,2009(07).
[3]周宁,丁琦.开放实时数据库及其在调度自动化系统中的应用[J].电网技术,2006(S2).
[4]韩慧云,黄梅.电力调度自动化系统中数据库和人机界面的设计[J].电气时代,2006(01).
[5]陆会明,周钊,廖常斌.基于实时数据库系统的历史数据处理[J].电力自动化设备,2009(03).