面向电力系统的分布式实时数据库设计.pdf

上传人:qwe****56 文档编号:74656180 上传时间:2023-02-27 格式:PDF 页数:8 大小:402.29KB
返回 下载 相关 举报
面向电力系统的分布式实时数据库设计.pdf_第1页
第1页 / 共8页
面向电力系统的分布式实时数据库设计.pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《面向电力系统的分布式实时数据库设计.pdf》由会员分享,可在线阅读,更多相关《面向电力系统的分布式实时数据库设计.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、http:/-1-面向电力系统的分布式实时数据库设计面向电力系统的分布式实时数据库设计 武君胜,吴德州 西北工业大学,西安(710065)E-mail: 摘摘 要:要:本文着重论述了面向电力(SCADA/EMS/DTS)一体化系统的分布式实时数据库的特点和内存体系结构,对其分布机制、系统特色等方面进行了探讨,并对系统中实现分布式部署的关键性技术数据库自动复制、心跳同步报文广播、总裁选举协议予以详细的阐述。基于本文原理的实时数据库系统已经实现,并在多个实际工程中得到应用。关键词:关键词:分布式,实时数据库,数据库自动复制,总裁选举,SCADA,EMS,DTS 0 引言引言 电力能源作为国民经济发

2、展的“三大命脉”之首,其发展水平、运行可靠性、自动化程度的提高直接影响着整个国民经济的发展步伐。而随着计算机软硬件、网络等技术的高速发展,电力系统的自动化水平也在不断提高,其中电力调度自动化系统(EMS)在保障电力系统的安全稳定运行中起着越来越大的基础作用。数据库技术产生于本世纪年代后期,其理论与技术发展极为迅速,应用也日益广泛,在当今的信息社会中,它几乎无所不在;其支持的数据模型,已经历了层次、网状、关系和面向对象模型等几个阶段,技术上逐渐走向成熟,在传统的(商务和管理的事务型)应用领域获得了极大成功,然而它们在现代的(非传统)工程和时间关键型应用面前却显得软弱无力,面临着新的严峻的挑战,由

3、此而导致了实时数据库(Real-time Database,RTDB)技术的产生和发展。实时数据库作为数据库技术的一个重要分支已有 20 多年的发展历史,随着网络技术迅速发展,实时数据库技术也得到很大发展。在电力系统方面,随着国内外对一体化系统(SCADA/EMS/DTS 一体化)的研究深入及用户对一体化系统需求的增加,如何设计与实现一个能较好支持一体化系统的实时数据库管理系统,也已成为调度自动化领域的一个重要课题1。本文介绍的这套系统业已开发成功,并在多个实际工程中得到应用。1 面向电力系统实时数据库的特点面向电力系统实时数据库的特点 作为一个面向电力系统、应用于调度一体化的实时数据库,它除

4、了应符合作为数据库的一般要求外,还需要满足 SCADA/EMS/DTS 系统的应用要求。因此,实时数据库应具备以下重要特点:(1)数据访问快速,能满足系统的实时性要求;(2)具备完备的数据处理和管理功能,有效的恢复和重载机制;(3)满足电力系统网络分析的要求,确保数据的实时性和一致性;(4)高效的数据分布性能,支持数据的分布存储和访问;(5)多任务的并发处理机制;(6)支持多个工程的数据库并存机制,各个工程的数据库间的数据切换方便,以提高工程管理效率;(7)支持数据库的镜象功能机制,满足不同应用间的数据快速切换;(8)提供数据库访问的规范接口,具有良好的数据安全性;http:/-2-(9)开放

5、性好,提供与其他系统数据交换机制。2 2 分布式数据库的特点分布式数据库的特点 分布式数据库系统有两个方面的含义:一是存储分散性,数据库中的数据存储在不同的计算机存储设备上;二是逻辑整体性,这些存储在不同地方的数据在逻辑上是互相联系的,共为一个整体3。分布式数据库系统不是简单地把集中数据库分散地实现,而是具有下面这些自己的特点和性质:1)透明性:用户不必关心数据的逻辑分片,也不必关心数据物理位置分布的细节;2)数据冗余度的适度增加:在集中数据库系统中,尽量减少数据的冗余度是系统的设计目标之一。而在分布式数据库系统中却需要一定的数据冗余,在不同的地方存储同一数据的多个副本。3)全局的一致性、可串

6、行性和可恢复性。4)集中与自治相结合的控制结构。在分布式数据库中,数据重复和合理的分配是关键。34 目前在分布式数据库技术方面研究热点是客户/服务器技术。对于多服务器系统而言,系统的数据分布在多个服务器中,多个客户共享多个数据库中的数据,每个客户可以访问网上的任一个客户的请求,此时多个服务器协同工作,支持对多服务器数据的透明访问。3 电力系统典型运行结构简介电力系统典型运行结构简介 通过对实时数据库和分布式数据库的特点分析,我们提出了一种结合二者优点的分布式实时数据库管理系统,它采用客户/服务器结构,并以内存数据库为基础,充分体现了网络条件下控制系统实时性的要求,为数据库技术在自动化中的应用提

7、供了新的思路。在我们下面要设计的分布式实时数据库系统中就是采用了这样的一些设计理念,并在充分利用网络系统的带宽的同时,做到负载均衡和双机双服务热备用。下面先给出当前电力调度系统一种典型的系统结构图。图 1.电力调度系统运行结构图 http:/-3-从上图可以看出,在电力调度自动化系统中包含了各种应用服务器,每种应用服务器上部署有不同的服务进程和内存数据库,同时各种服务器之间也进行大量的数据交换以保持同步和一致性,客户节点也需要访问各种应用服务器上的服务和数据。由于电力调度自动化系统对系统的稳定性、可靠性、实时性要求比较高,因此对于关键部分均采用冗余配置,比如网络采用双网、各种应用服务器和数据库

8、服务器均为双机热备的方式冗余。这样的部署虽然能够使系统的健壮性和性能都获得很大的提高,但是也给我们如何保持分布在不同的服务节点上的实时数据库的数据一致性带来了很大的技术难题。4 面向电力系统的分布式式实时数据库系统的结构设计面向电力系统的分布式式实时数据库系统的结构设计 由于我们设计的实时数据库系统是面向电力调度系统的一种专用的实时内存数据库(MMDB)系统,考虑到电力系统运行的数据访问要求,我们把所有的数据分成三类:动态数据、静态数据和统计计算数据。由此衍生出了两种数据存储要求,我们把频繁访问的动态数据信息、计算数据以及部分的必要的静态属性信息提取,按照设计的内存数据库结构生成内存映像文件,

9、称作动态库;而按照关系模式保存所有动态数据和静态数据的商用数据库称作静态库。商用数据库中的表关系设计我们就不在此再作赘述了,下面就重点介绍一下实时数据库的内存结构设计。4.1 结构设计结构设计 内存数据的组织结构在 MMDB 系统设计时,使用了现代操作系统提供的共享内存机制,系统初始化时将整个内存数据库映像文件装入一块共享内存区,运行时应用进程可以把整个数据库或一部分映射到自己的虚地址空间进行直接访问。针对关系和索引数据全在内存中这一特点,指针在数据结构和数据访问中被广泛的使用。应用进程可以通过指针,也可以通过位置独立的数据库偏移量访问数据,无需像 DRDB 那样与缓冲区管理器交互。另外,由于

10、指针长度固定,因此变长字段问题可以很好解决。其次,若一个大的数据对象在数据库中多次出现,则内存中只需存储一次,其它地方使用指针来引用。本系统的内存数据库结构通常由四个相互独立的共享内存区组成,分别是数据库模式信息区、数据段索引去、数据段信息区和数据区,其中数据段信息区和数据区成组出现,映射为电力系统数据库中的各个数据关系。有时候对于常用的数据表我们也会再增加一个内存区域数据记录 HASH 信息区,利用哈希函数直接查询到相应的数据记录,以加快访问记录的速度。数据区中包含的每个记录的属性由数据结构进行指定,为了加快访问的速度和减少内存中指针的移动次数,一些常用的信息通常也会进行冗余配置。同时由于电

11、力系统中许多应用软件采用连续内存进行数据处理,并且连续内存有利于提高系统的实时性,因此在镜像内存映像的时候每个关系表的数据空间均进行续内存分配。本系统的物理内存组织结构如下图所示。http:/-4-图 2 内存结构示意图 4.2 内存数据库结构说明内存数据库结构说明 下面我们给出内存数据库的部分结构 C 语言说明:1)内存数据库头信息结构 typedef struct DBU_ShmemHeader_T sint32 major_id;/*version major id*/sint32 minor_id;/*version minor id*/sint32 last_regen;/*date

12、/time of last regeneration*/sint32 last_static_upd;/*date/time of last static update*/sint32 last_dyn_upd;/*date/time of last dynamic update*/uint32 total_size;/*size of the shared memory in bytes*/uint32 catalog_offset;/*offset of the table catalog relative to the beginning of the shared memory.*/u

13、int32 max_tables;/*maximum number of tables in the shared memory,not counting the header.This is the capacity of the table catalog*/sint32 dbvalid;/*TRUE if the database is in a valid state;*/char signatureDBU_K_NAME_LEN;/*marker to positively identify the beginning of the shared memory*/char nameDB

14、U_K_NAME_LEN;/*shared memory name*/char versionDBU_K_VERSION_LEN;/*version number in ASCII;*/char dateDBU_K_DATE_LEN;/*date/time of when the shared memory was last re-generated;*/DBU_ShmemHeader_T;2)数据段索引信息结构 typedef struct DBU_ShmemCatalog_T uint32 mod_count;/*modification count*/http:/-5-uint32 of

15、fset;/*offset of the table relative to the beginning of the shared memory*/uint32 size;/*size of the table in bytes*/uint32 max_records;/*size of the table in records*/uint32 num_records;/*actual number of records used;this is a dynamic field which is updated when records are added or deleted.*/uint

16、32 extent;/*Index of the last used record in the table;all records following this index are guaranteed to be empty.The value of extent is always greater than or equal to the value of num_records*/uint32 checksum;/*checksum*/sint32 last_update;/*date/time of last_update*/char nameDBU_K_NAME_LEN;/*tab

17、le name*/DBU_ShmemCatalog_T;5 分布式机制的实现分布式机制的实现 在电力调度自动化系统中包含了各种应用服务器,每种应用服务器上有相应的处理软件和数据,同时各种服务器之间进行大量的数据交换。而客户节点又需要同时访问各种应用服务器上的数据。由于电力调度自动化系统对系统的稳定性、可靠性、实时性要求比较高,因此对于关键部分均采用冗余配置,比如网络采用双网、各种应用服务器均为冗余配置。因此数据库管理系统的设计围绕物理存储管理、网络信息共享、服务器冗余管理等方面进行。在数据库底层网络功能的实现上,本文采取数据分流与冗余多网络的可靠通信,即系统中配置了多个相互独立的局域网,只要一

18、条通信回路正常就可保证数据正确到达。这在实时监控系统中很有意义,因为实时系统要求数据具备高度可靠性,数据丢失在这种应用中是不能接受的。5.1 实时数据库的分布式部署实时数据库的分布式部署 5.1.1 双机双服务的硬件分布部署双机双服务的硬件分布部署 在系统运行图中,我们可以看到主要的服务节点都采用双机的部署方式,当然这里的双机冗余并不是被动的而是主动,它不但实现内存数据库实时复制备份,还同时起到了负载均衡的作用。例如在前置服务器 AB 双机中,正常时 A、B 服务器分别负责各自直接配属的下级网络采集终端(RTU)的数据报文传输和解析,起到了数据流和访问服务的均衡负载。而当其中一个服务器发生宕机

19、后,另一个服务器马上接管了对方名下的服务,实现了无缝的热备。而当故障解除之后,A、B 服务器又回重新接管各自的服务,达到网络和访问的均衡处理。具体的实现原理,参见下面的心跳服务和总裁选举。5.1.2 内存数据库文件的分布式部署内存数据库文件的分布式部署 从图 2 的电力系统运行结构图上我们可以看出在电力电力系统的应用中存在着多个主要的数据处理服务,分别是前置数据采集通讯服务、SCADA 服务、PAS 应用服务和 DTS应用服务。不同的服务进程对于数据的要求是不同,这样我们就可以根据部署服务节点的http:/-6-不同生成不同的内存数据库映像文件,需要访问这些数据映像的时候分别进行加载就可以实现

20、数据的访问。分布式实时数据库管理按照客户/服务器模式构建,对于某一个分布式实时数据库,整个系统内只有一个节点的数据库为参考点,其它节点的该数据库为参考点的复制点,复制实时数据库的数据自动向参考点的数据统一,以达到数据一致性的要求。我们对部署在主备机上的数据库影像文件起了不同的名字,把部署在主机上的内存数据称作参考库(REFMAP),把部署在备机上的称作复制库(REPMAP)。5.2 实现分布部署的关键技术实现分布部署的关键技术 5.2.1 数据库自动复制技术数据库自动复制技术 数据库自动复制技术(Database Automated Replication,DAR)是我们用来保证参考库和复制库

21、数据一致的关键技术。根据数据更新的不同,DAR 提供了更新和下载数据库的三种技术。第一种技术不能进行任何下载优化,而其它两种技术通过有选择地下载复制库请求下载的数据库中发生改变的部分来改善下载的持续时间。这三种技术分别是:1)非优化的更新/下载技术:该技术包括下载表的全部项(直到目录表 extent 字段指定的项)。对相对小的数据库来说,此技术是可行的。对大的数据库,完全下载的持续时间使此技术无法让人接受,特别是当数据库仅有一小部分被修改而复制库节点请求下载时。2)基本更新/下载优化技术:基本更新/下载优化技术仅有选择的下载复制库请求的并发生了改变的表。mod_count 字段是一个表的修改计

22、数,正常时每当参考数据库更新器对XXX_Table 表进行一次修改,mod_count 字段加 1 而且该字段的新值(与 XXX_Table1 表所做的修改一起)被传播给所有复制数据库,所有的数据库就被同步更新了。而当复制数据库需要主动下载时,复制数据库首先向参考数据库下载服务器发送 mod_count,当下列条件满足时,参考数据库下载服务器下载该表:IF (复制数据库 XXX_TableCat-mod_count 小于 参考数据库 XXX_TableCat-mod_count )THEN 下载 XXX_Table1 表的所有记录直到 XXX_TableCat-extent。下载目录表的 nu

23、m_records、extent 和 mod_count 字段。ENDIF 3)增强更新/下载优化技术:此项更新/下载技术是基本更新/下载优化技术的增强。它允许下载与复制库请求相关的表中被修改的记录。为了更好地检测修改,此技术需要增加一个更改计数表用来存放基本表项的更改次数。由于存在额外的内存开销,此技术最适用于经常需要更改一些基本项的非常大的表。5.2.2 心跳报文广播服务心跳报文广播服务 上文述说了在双机服务过程中实现了网络访问和服务的负载均衡,那么双机所处的地位看上去是平等的,但是在任一时刻,在双机或者多机部署的情况下系统中总是存在一台作为主机服务,其余的机器作为备机服务。首先,我们根据

24、服务进程的配置参数选出一台作为主服务器使用,对它赋予比较高的优先级别,其余的服务器我们可以赋予不同的或者相同稍低的服务级别。这样首先由最高级别的服务器充当主机使用,主机和备机通过广播的心跳报文来保持通讯的同步和服务的监控以及切换。心跳报文广播采用 UDP 通信协议,它的特点是效率高但不可靠,适合于网络拓扑结构http:/-7-未知情况下的应用。在系统测试过程中发现,当系统发生连续的报文广播时,报文的丢失率高达 20以上。分析发现,报文丢失主要发生在接收端而不是在网络上,可能是网卡的中断处理效率不够,以及接收线程来不及处理连续的报文导致报文接收队列溢出所致。为提高可靠性,本系统采取对小报文缓存合

25、并,每个报文发送之间采取一定间歇及采取双收策略,实际应用表明这样可基本消除报文丢失现象。5.2.3 总裁选举协议总裁选举协议 虽然心跳报文的广播服务解决了双机的同步和服务的监控问题,但是当万一主机出现了宕机或者掉线的情况下,丢失了主机心跳广播报文怎么办呢?于是我们就引入了总裁选举协议来进行主机的推选工作。总裁选举协议提供了一种机制,保证在任意时刻在一组分布式应用中的只存在一个主服务,而其他应用为备用的服务。该协议利用点对点通信服务中的数据报通信端点在各协作进程间交换信息。该总裁选举协议的选举策略就是:IF EXIST 进程的优先级别最高 THEN 该进程为主服务进程 ELSE IF EXIST

26、 多个相同最高优先级别进程 THEN 获取进程的其他关键指标 IF EXIST 某进程该关键指标最高 THEN 该进程为主服务进程。END IF END IF 6 结论结论 本文分析了面向电力调度系统的专用的分布式实时数据库的特点以及在设计中面临的难点,对实现实时数据库所需要的关键技术进行了详细的阐述并给出解决方案。根据上述的原理实现的电力调度的分布式实时数据库系统已经成熟的运用在多个省地级的电力调度系统中,有力的支援了我国的电力调度事业的建设和发展。从总体和应用情况看,本系统提高了电力调度自动化系统的实时性、扩展性、通用性,缩短了电力调度自动化系统的开发周期,降低了系统开发的复杂程度和开发费

27、用,同时系统规模可灵活配置,适应多变的用户需求。此外本系统做一些适应性修改,便可应用于其他实时监控系统,从而显示了广阔的应用前景。参考文献参考文献 1 于尔铿,刘广一,周京阳能量管理系统(EMS).M.北京:科学出版社 1998 2 吴文传,张伯明,王鹏,一体化系统的分布式实时数据库管理系统.J中国电力,2000.10,Vol.33No.10 3 杨武军,张继荣,屈军锁内存数据库技术综述.西安邮电学院学报M.2005.7,Vol.10 No.3 4 叶建位,苏宏业,实时数据库系统关键技术及实现.计算机应用研究J 2005.No.3 5 王洪海,潘朝华,内存数据库的数据结构分析.现代电子技术J.

28、2004.No.3 http:/-8-Design of distributed real-time database orienting power system Wujunsheng,Wudezhou Northwestern Ploytechnical University,Xian Shanxi(710065)Abstract A distributed real-time database management system applied in a integrated SCADA/EMS/DTS system is presented in this paper.It intro

29、duces the system structure of memory and some systems features and specifies the mechanism f distributing deployment,then it describes the key technology Database Automated Replication and heartbeat broadcast and the protocol of electing president.The system based on above theories has been realized and put into practicable operation in some power system control centers in China.Keywords:distributed,real-time database,Database Automated Replication,SCADA,EMS,DTS 作者简介:武君胜,男,博士,西北工业大学教授,从事软件工程方面研究;吴德州,男,1978 年生,硕士,从事电力系统 SCADA/EMS/DMS 以及实时数据库的研究和开发工作。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁