数据库内存数据库
内存数据库 时间:2021-01-16 阅读:(
)
第3卷第2期2008年2月102面向电力系统的分布式实时数据库关键技术及应用武君胜,吴德州(西北工业大学软件与微电子学院,西安710065)摘要:本文论述了面向电力(SCADA/EMS/DTS)一体化系统的分布式实时数据库的特点和内存体系结构,对其分布机制、系统特色等方面进行了探讨,并对系统中实现分布式部署的关键性技术——数据库自动复制、心跳同步报文广播、总裁选举协议予以详细的阐述.
基于本文原理的实时数据库系统已经实现,并在多个实际工程中得到应用.
关键词:计算机应用;分布式实时数据库;数据库自动复制;总裁选举;SCADA;EMS中图分类号:TP311.
133.
1文献标识码:A文章编号:1673-7180(2008)02-0102-6Thecriticaltechnologyandapplicationofpower-systemorienteddistributedreal-timedatabaseWUJunsheng,WUDezhou(CollegeofSoftwareandMicroelectronics,NorthwesternPolytechnicalUniversity,Xi-an710065)Abstract:Adistributedreal-timedatabasemanagementsystemappliedinanintegratedSCADA/EMS/DTSsystemispresentedinthispaper.
Thesystemstructureofmemoryandsomefeaturesofthesystemareintroduced,thedistributeddatabasemechanismisspecified,andthenthecriticaltechniquessuchasautomateddatabasereplication,heartbeatbroadcastingandtheleaderelectionprotocolaredescribed.
Thesystembasedontheprincipleofthispaperhasbeenputintopractice,andusedinsomepowersystemcontrolcentersinChina.
Keywords:computerapplications;distributedreal-timedatabase;databaseautomatedreplication;theleaderelectionprotocol;SCADA;EMS0引言电力能源作为国民经济发展的"三大命脉"之首,其发展水平、运行可靠性、自动化程度的提高直接影响着整个国民经济的发展步伐.
而随着计算机软硬件、网络等技术的高速发展,电力系统的自动化水平也在不断提高,其中电力调度自动化系统(EMS)在保障电力系统的安全稳定运行中起着越来越大的基础作用.
数据库技术产生于上世纪60年代后期,其理论与技术发展极为迅速,应用也日益广泛,在当今的信息社会中,它几乎无所不在;其支持的数据模型,已经历了层次、网状、关系和面向对象模型等几个阶段,技术上逐渐走向成熟,在传统的应用领域获得了极大成功.
然而它们在现代的工程和时间关键型应用面前却显得软弱无力,面临着新的严峻的挑作者简介:武君胜(1962-),男,教授,wujunsheng@nwpu.
edu.
cn中国科技论文在线SCIENCEPAPERONLINE第3卷第2期2008年2月103中国科技论文在线SCIENCEPAPERONLINE战,由此而导致了实时数据库(real-timedatabase,RTDB)技术的产生和发展.
实时数据库作为数据库技术的一个重要分支已有20多年的发展历史,随着网络技术迅速发展,实时数据库技术也得到很大发展.
在电力系统方面,随着国内外对一体化系统(SCADA/EMS/DTS)的研究深入及用户需求的增加,如何设计与实现一个能较好支持一体化系统的实时数据库管理系统,也已成为调度自动化领域的一个重要课题[1].
本文介绍的这套系统已开发成功,并在多个实际工程中应用.
1面向电力系统实时数据库的特点作为一个面向电力系统调度一体化的实时数据库,它除了应符合作为数据库的一般要求外,还需要满足SCADA/EMS/DTS系统的应用要求.
因此,实时数据库应具备以下重要特点:1)数据访问快速,能满足系统的实时性要求;2)具备完备的数据处理和管理功能,有效的恢复和重载机制;3)满足电力系统网络分析的要求,确保数据的实时性和一致性;4)高效的数据分布性能,支持数据的分布存储和访问;5)多任务的并发处理机制;6)支持多个工程的数据库并存机制,数据库间的数据方便切换,以提高工程管理效率;7)支持数据库的镜象功能机制,满足不同应用间的数据快速切换;8)提供数据库访问的规范接口,具有良好的数据安全性;9)开放性好,提供与其他系统数据交换机制[2].
2分布式数据库的特点分布式数据库系统有两个方面的含义:一是存储分散性,数据库中的数据存储在不同的计算机存储设备上;二是逻辑整体性,这些存储在不同地方的数据在逻辑上是互相联系的,共为一个整体[3].
分布式数据库系统不是简单地把集中数据库分散地实现,而是具有下面这些自己的特点和性质:1)透明性:用户不必关心数据的逻辑分片,也不必关心数据物理位置分布的细节;2)数据冗余度的适度增加:在集中数据库系统中,尽量减少数据的冗余度是系统的设计目标之一.
而在分布式数据库系统中却需要一定的数据冗余,在不同的地方存储同一数据的多个副本.
3)全局的一致性、可串行性和可恢复性.
4)集中与自治相结合的控制结构.
在分布式数据库中,数据重复和合理的分配是关键[3,4].
目前,分布式数据库技术研究的热点是客户/服务器技术.
对于多服务器系统而言,系统的数据分布在多个服务器中,多个客户共享多个数据库中的数据,服务器间协同工作,支持对数据的透明访问.
3电力系统典型运行结构图1一种典型电力调度系统运行结构图Fig.
1Atypicalstructureoftheelectricpowerdispatchingsystem通过对实时数据库和分布式数据库的特点分析,我们提出了一种结合二者优点的分布式实时数据库管理系统,它采用客户/服务器结构,并以内存数据库为基础,充分体现了网络条件下控制系统实第3卷第2期2008年2月104时性的要求,为数据库技术在自动化系统中的应用提供了新的思路.
下面设计的分布式实时数据库系统就采用了这样的一些设计理念,并在充分利用网络系统带宽的同时,做到负载均衡和双机双服务热备用.
图1给出了电力调度系统一种典型的运行结构图.
从图1可以看出,在电力调度系统中包含了各种应用服务器,每种应用服务器上部署有不同的服务进程和内存数据库,同时各种服务器之间也进行大量的数据交换以保持同步和一致性,客户结点也需要访问各种应用服务器上的服务和数据.
4面向电力系统的分布式实时数据库系统的结构设计这里所设计的实时数据库系统是面向电力调度系统的一种专用的实时内存数据库(MMDB)系统,考虑到电力系统运行的数据访问要求,把所有的数据分成三类:动态数据、静态数据和统计计算数据.
由此衍生出了两种数据存储要求,提取频繁访问的动态数据、计算数据以及部分必要的静态属性信息,按照设计的内存数据库结构生成内存映像文件,称作动态库;而按照关系模式在商用数据库中保存所有动态数据和静态数据,形成静态库.
商用数据库中表关系的设计在此不再赘述,下面重点介绍实时数据库的内存结构设计.
4.
1结构设计内存数据的组织结构在MMDB系统设计时,使用了现代操作系统提供的共享内存机制,系统初始化时将整个内存数据库映像文件装入一块共享内存区,运行时应用进程可以把整个数据库或一部分映射到自己的虚地址空间进行直接访问.
针对关系和索引数据全在内存中这一特点,在数据结构和数据访问中广泛使用指针.
应用进程可以通过指针,也可以通过位置独立的数据库偏移量访问数据,无需像DRDB那样与缓冲区管理器交互.
另外,由于指针长度固定,因此可以很好地解决变长字段问题.
其次,若一个大的数据对象在数据库中多次出现,则内存中只需存储一次,其它地方使用指针来引用.
本系统的内存数据库结构通常由四个相互独立的共享内存区组成,分别是数据库模式信息区、数据段索引区、数据段信息区和数据区,其中数据段信息区和数据区成组出现,映射为电力系统数据库中的各个数据关系.
有时候对于常用的数据表也会再增加一个内存区域,或称数据记录HASH信息区,利用哈希函数直接查询到相应的数据记录,以加快访问记录的速度.
数据区中包含的每个记录的属性由数据结构进行指定,为了加快访问的速度和减少内存中指针的移动次数,一些常用的信息通常也会进行冗余配置.
同时由于电力系统中许多应用软件采用连续内存进行数据处理,并且连续内存有利于提高系统的实时性,因此在镜像内存映像的时候,每个关系表的数据空间均进行连续内存分配.
本系统的物理内存组织结构如图2所示.
图2内存结构示意图Fig.
2Sketchofmemorystructure面向电力系统的分布式实时数据库关键技术及应用第3卷第2期2008年2月105中国科技论文在线SCIENCEPAPERONLINE4.
2内存数据库结构说明下面给出内存数据库部分结构的C语言说明:1)内存数据库头信息结构typedefstructDBU_ShmemHeader_T{sint32major_id;/*versionmajorid*/sint32minor_id;/*versionminorid*/sint32last_regen;/*date/timeoflastregeneration*/sint32last_static_upd;/*date/timeoflaststaticupdate*/sint32last_dyn_upd;/*date/timeoflastdynamicupdate*/uint32total_size;/*sizeofthesharedmemoryinbytes*/uint32catalog_offset;/*offsetofthetablec*/uint32max_tables;/*maximumnumberoftables*/sint32dbvalid;/*TRUEifthedatabaseisinavalidstate;*/charsignature[DBU_K_NAME_LEN];charname[DBU_K_NAME_LEN];/*sharedmemoryname*/charversion[DBU_K_VERSION_LEN];/*versionnumberinASCII;*/chardate[DBU_K_DATE_LEN];/*date/timeoflastre-generated;*/}DBU_ShmemHeader_T;2)数据段索引信息结构typedefstructDBU_ShmemCatalog_T{uint32mod_count;/*modificationcount*/uint32offset;/*offsetofthetable*/uint32size;/*sizeofthetableinbytes*/uint32max_records;/*sizeofthetableinrecords*/uint32num_records;/*actualnumberofrecordsused;*/uint32extent;/*Indexofthelastusedrecordtable*/uint32checksum;/*checksum*/sint32last_update;/*date/timeoflast_update*/charname[DBU_K_NAME_LEN];/*tablename*/}DBU_ShmemCatalog_T;5分布式机制的实现在电力调度自动化系统中包含了各种应用服务器,每种应用服务器上有相应的处理软件和数据,同时各种服务器之间进行大量的数据交换.
而客户结点又需要同时访问各种应用服务器上的数据.
由于电力调度自动化系统对系统的稳定性、可靠性、实时性要求比较高,因此对于关键部分均采用冗余配置,比如网络采用双网、各种应用服务器均为冗余配置.
因此数据库管理系统的设计围绕物理存储管理、网络信息共享、服务器冗余管理等方面进行.
在数据库底层网络功能的实现上,本文采取数据分流与冗余多网络的可靠通信,即系统中配置了多个相互独立的局域网,只要一条通信回路正常就可保证数据正确到达.
这在实时监控系统中很有意义,因为实时系统要求数据具备高可靠性,数据丢失在这种应用中是不能接受的.
5.
1实时数据库的分布式部署5.
1.
1双机双服务的硬件分布部署在系统运行图1中,可以看到主要的服务结点都采用双机热备的部署方式,它不但实现内存数据库实时复制备份,还同时起到了负载均衡的作用.
例如在前置服务器A、B双机中,正常时A、B服务器分别负责各自直接配属的下级网络采集终端(RTU)的数据报文传输和解析,起到了数据流和访问服务的均衡负载.
而当其中一个服务器发生宕机后,另第3卷第2期2008年2月106一个服务器马上接管对方名下的服务,实现无缝的热备.
而当故障解除之后,A、B服务器又重新接管各自的服务,达到网络和访问的均衡处理.
具体的实现原理,参见下面的心跳服务和总裁选举.
5.
1.
2内存数据库文件的分布式部署从图2的电力系统运行结构图可以看出在电力系统的应用中存在着多个主要的数据处理服务,分别是前置数据采集通讯服务、SCADA服务、PAS应用服务和DTS应用服务.
不同的服务进程对于数据的要求不同,这样就可以根据部署服务结点的不同而生成不同的内存数据库映像文件,需要访问这些数据映像的时候分别进行加载即可实现数据的访问.
分布式实时数据库管理按照客户/服务器模式构建,对于某一个分布式实时数据库,整个系统内只有一个结点的数据库为参考,其它结点的数据库进行以该结点为基准,其数据自动向参考点的数据统一,以达到数据一致.
因此,我们把部署在主机上的内存数据称作参考库(REFMAP),把部署在备机上的称作复制库(REPMAP).
5.
2实现分布部署的关键技术5.
2.
1数据库自动复制技术数据库自动复制技术(DatabaseAutomatedReplication,DAR)是用来保证参考库和复制库数据一致的关键技术.
根据数据更新的不同,DAR提供了更新和下载数据库的三种技术.
这三种技术分别是:1)非优化的更新/下载技术:该技术包括下载表的全部项.
对相对小的数据库来说,此技术是可行的.
对大的数据库,完全下载的持续时间使此技术无法让人接受,特别是当数据库仅有一小部分被修改而复制库结点请求下载时.
2)基本更新/下载优化技术:它有选择的下载复制库请求的并发生了改变的表.
mod_count字段是一个表的修改计数,正常时每当参考数据库更新器对XXX_Table表进行一次修改,mod_count字段加1而且该字段的新值(与XXX_Table1表所做的修改一起)被传播给所有复制数据库,所有的数据库就被同步更新了.
而当复制数据库需要主动下载时,复制数据库首先向参考数据库下载服务器发送mod_count,当下列条件满足时,参考数据库下载服务器下载该表:IF(复制数据库XXX_TableCat->mod_count小于参考数据库XXX_TableCat->mod_count)THEN下载XXX_Table1表的所有记录直到XXX_TableCat->extent.
下载目录表的num_records、extent和mod_count字段.
ENDIF3)增强更新/下载优化技术:此项更新/下载技术是基本更新/下载优化技术的增强.
它允许下载与复制库请求相关表中被修改的记录.
为了更好地检测修改,此技术需要增加一个更改计数表来存放基本表项的更改次数.
由于存在额外的内存开销,此技术最适用于经常需要更改一些基本项的超大表.
5.
2.
2心跳报文广播服务上文论述了要在双机服务过程中实现网络访问和服务的负载均衡,这里双机所处的地位虽然是平等的,但是在任一时刻,在双机或者多机部署的情况下系统中总存在一台作为主机服务,其余作为备机服务.
首先,根据服务进程的配置参数选出一台作为主服务器使用,对它赋予比较高的优先级别,赋予其余的服务器不同的或者相同稍低的服务级别.
这样首先由最高级别的服务器充当主机使用,主机和备机通过广播的心跳报文来保持通讯的同步和服务的监控以及切换.
心跳报文广播采用UDP通信协议,它的特点是效率高但不可靠,适合于网络拓扑结构未知情况下的应用.
在系统测试过程中发现,当系统发生连续的报文广播时,报文的丢失率高达20%以上.
分析发现,报文丢失主要发生在接收端而不是在网络上,可能是网卡的中断处理效率不够,以及接收线程来不及处理连续的报文导致报文接收队列溢出所致.
为提高可靠性,本系统采取对小报文缓存合并,每个报文发送之间采取一定间歇及采取双收策略,实际应用表明这样可基本消除报文丢失现象.
5.
2.
3总裁选举协议虽然心跳报文的广播服务解决了双机的同步和服务的监控问题,但是必须防止出现因主机宕机或者掉线而丢失主机心跳广播报文的情况发生,为此引入了总裁选举协议来进行主机的推选工作.
总裁选举协议提供了一种机制,保证在任意时刻在一组分布式应用中只存在一个主服务,其他的应用为备用服务.
该协议利用点对点通信服务中的数据报通信端点在各协作进程间交换信息.
该总裁选举协议的选举策略就是:IFEXIST进程的优先级别最高THEN该进程为主服务进程面向电力系统的分布式实时数据库关键技术及应用第3卷第2期2008年2月107中国科技论文在线SCIENCEPAPERONLINEELSEIFEXIST多个相同最高优先级别进程THEN获取进程的其他关键指标IFEXIST某进程该关键指标最高THEN该进程为主服务进程.
ENDIFENDIFENDIF6结论本文分析了面向电力调度系统的专用的分布式实时数据库的特点以及在设计中面临的难点,对实现实时数据库所需要的关键技术进行了详细的阐述并给出解决方案.
根据上述的原理实现的电力调度的分布式实时数据库系统已经成熟地运用在多个省地级的电力调度系统中,有力地支援了我国的电力调度事业的建设和发展.
从总体和应用情况看,本系统提高了电力调度自动化系统的实时性、扩展性、通用性,缩短了电力调度自动化系统的开发周期,降低了系统开发的复杂程度和开发费用,同时系统规模可灵活配置,适应多变的用户需求.
此外本系统做一些适应性修改,便可应用于其他实时监控系统,从而显示了广阔的应用前景.
[参考文献](References)[1]于尔铿,刘广一,周京阳.
能量管理系统(EMS)[M].
北京:科学出版社,1998.
YuErkeng,LiuGuangyi,ZhouJingyang.
Energymanagementsystem(EMS)[M].
Beijing:SciencePress,1998.
(inChinese)[2]吴文传,张伯明,王鹏.
一体化系统的分布式实时数据库管理系统[J].
中国电力,2000,33(10):85~89.
WuWenchuan,ZhangBoming,WangPeng.
Adistributedreal-timedatabasemanagementsystemappliedintheintegrationsystem[J].
ElectricPowerOfChina,Oct.
2000,33(10):85~89.
(inChinese)[3]杨武军,张继荣,屈军锁.
内存数据库技术综述[J].
西安:西安邮电学院学报,2005,10(3):95~99.
YangWujun,ZhangJirong,QuJunsuo.
Anoverviewofmain-memorydatabasetechniques[J].
Xi-an:JournalofXi-anUniversityofPostandTelecom.
2005,10(3):95~99.
(inChinese)[4]叶建位,苏宏业.
实时数据库系统关键技术及实现[J].
计算机应用研究,2005,22(3):45~47.
YeJianwei,SuHongye.
Keytechnologyofreal-timedatabasesystem[J].
ApplicationResearchofComputers.
2005,22(3):45~47.
(inChinese)[5]王洪海,潘朝华.
内存数据库的数据结构分析[J].
现代电子技术,2004,27(3):96~98.
WangHonghai,PanChaohua.
Analysisofdatastructureinmainmemorydatabase[J].
ModernElectronicsTechnique,2004,27(3):96~98.
(inChinese)
BlueHost 主机商在以前做外贸网站的时候还是经常会用到的,想必那时候有做外贸网站或者是选择海外主机的时候还是较多会用BlueHost主机商的。只不过这些年云服务器流行且性价比较高,于是大家可选择商家变多,但是BlueHost在外贸主机用户群中可选的还是比较多的。这次年中618活动大促来袭,毕竟BLUEHOST商家目前中文公司设立在上海,等后面有机会也过去看看。他们也会根据我们的国内年中促销发...
老薛主机,虽然是第一次分享这个商家的信息,但是这个商家实际上也有存在有一些年头。看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港VPS主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港VPS。如果没有记错的话,早年这个商家是主营个人网站虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站...
柚子互联官网商家介绍柚子互联(www.19vps.cn)本次给大家带来了盛夏促销活动,本次推出的活动是湖北十堰高防产品,这次老板也人狠话不多丢了一个6.5折优惠券而且还是续费同价,稳撸。喜欢的朋友可以看看下面的活动详情介绍,自从站长这么久以来柚子互联从19年开始算是老商家了。六五折优惠码:6kfUGl07活动截止时间:2021年9月30日客服QQ:207781983本次仅推荐部分套餐,更多套餐可进...
内存数据库为你推荐
主机租赁电脑租赁的缺点主机租赁租电脑押金多少?linux虚拟主机如何配置linux虚拟主机海外主机那些韩国主机,美国主机是怎么来的?美国vps主机我用的美国VPS主机429元/月,感觉好贵,请问有比较便宜点的吗?免费vps服务器免费服务器有哪些台湾主机香港,美国,台湾,韩国,日本主机到底哪个好域名申请申请域名需要哪些流程具体点 谢谢北京网站空间一个小型企业网站空间和网站域名一年需要多少钱?美国免费虚拟主机哪有便宜的美国虚拟主机?246数据美国虚拟主机一年才40元http://246idc.com/host/
域名备案 万网免费域名 virpus vpsio 2014年感恩节 新站长网 国外php空间 京东商城双十一活动 web服务器的架设 免费个人空间 ntfs格式分区 免费cdn 33456 购买国外空间 爱奇艺会员免费试用 空间服务器 97rb cdn服务 国外代理服务器 nnt 更多