《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 軌道交通綜合監(jiān)控系統(tǒng)數(shù)據(jù)庫集群設(shè)計
軌道交通綜合監(jiān)控系統(tǒng)數(shù)據(jù)庫集群設(shè)計
2014年微型機與應(yīng)用第13期
朱小龍1,張興波2,趙麗敏3,陸 晨1
1.華北計算機系統(tǒng)工程研究所 研究生部2.北京國際系統(tǒng)控制有限公司3.德州學(xué)院 計算機系,山東
摘要: 軌道交通綜合監(jiān)控是軌道交通自動化現(xiàn)階段的發(fā)展方向。而構(gòu)建一個實時的、高可用性的數(shù)據(jù)庫系統(tǒng)正是建立穩(wěn)定高效的綜合監(jiān)控平臺的基礎(chǔ)條件。MySQL Cluster是MySQL適用于分布式計算環(huán)境、多主機架構(gòu)的實時數(shù)據(jù)庫版本,具有高可用性和無單點故障的應(yīng)用特點。根據(jù)軌道交通綜合監(jiān)控系統(tǒng)的應(yīng)用需求,設(shè)計了綜合監(jiān)控系統(tǒng)數(shù)據(jù)庫集群架構(gòu)。
Abstract:
Key words :

  摘  要軌道交通綜合監(jiān)控是軌道交通自動化現(xiàn)階段的發(fā)展方向。而構(gòu)建一個實時的、高可用性的數(shù)據(jù)庫系統(tǒng)正是建立穩(wěn)定高效的綜合監(jiān)控平臺的基礎(chǔ)條件。MySQL Cluster是MySQL適用于分布式計算環(huán)境、多主機架構(gòu)的實時數(shù)據(jù)庫版本,具有高可用性和無單點故障的應(yīng)用特點。根據(jù)軌道交通綜合監(jiān)控系統(tǒng)的應(yīng)用需求,設(shè)計了綜合監(jiān)控系統(tǒng)數(shù)據(jù)庫集群架構(gòu)。

  關(guān)鍵詞: MySQL Cluster;軌道交通綜合監(jiān)控;數(shù)據(jù)庫集群

  軌道交通綜合監(jiān)控系統(tǒng)是原有各個單獨機電系統(tǒng)的應(yīng)用集成,具有多子站、多子系統(tǒng)和地理分布分散的結(jié)構(gòu)特點。其主要功能包括對設(shè)備的集中監(jiān)控和子系統(tǒng)之間的協(xié)調(diào)聯(lián)動,一般綜合監(jiān)控系統(tǒng)由電力(PSCADA)、信號(SIG)、環(huán)控(BAS)、乘客信息(PIS)、乘客廣播(PA)、視頻監(jiān)控(CCTV)、火災(zāi)報警(FAS)、售檢票(AFC)、門禁(ACS)和屏蔽門(PSD)等子系統(tǒng)組成。

  數(shù)據(jù)庫是軌道交通綜合監(jiān)控系統(tǒng)各種應(yīng)用的基礎(chǔ),是數(shù)據(jù)交換和共享信息的直接載體。使用MySQL Cluster數(shù)據(jù)庫集群既能滿足系統(tǒng)較強實時性和高可用性的要求(NDB存儲引擎采用內(nèi)存表和無單點故障設(shè)計),又具有低成本、易擴展的優(yōu)點。

  1 系統(tǒng)結(jié)構(gòu)

  1.1 MySQL Cluster結(jié)構(gòu)

  MySQL Cluster由若干個主機中內(nèi)存數(shù)據(jù)庫組成集群。各個主機之間無共享結(jié)構(gòu),降低了分布式系統(tǒng)的硬件需求。在MySQL Cluster中,有3種類型的節(jié)點。每個節(jié)點表示為一個服務(wù)進程。MySQL Cluster結(jié)構(gòu)圖如圖1所示。

001.jpg

  管理節(jié)點:集群管理服務(wù)器,負(fù)責(zé)配置系統(tǒng)參數(shù)、管理節(jié)點的啟動和停止、運行備份。節(jié)點中存儲了數(shù)據(jù)庫集群的整體配置信息,它必須在其他節(jié)點進程啟動之前啟動。

  數(shù)據(jù)節(jié)點:用于存儲集群的數(shù)據(jù),集群的數(shù)據(jù)以數(shù)據(jù)組(Data Group)的形式存儲在數(shù)據(jù)節(jié)點上,一個數(shù)據(jù)組中包含NoOfReplica個數(shù)據(jù)節(jié)點,這些節(jié)點互為副本,數(shù)據(jù)組中單個副本節(jié)點故障不影響數(shù)據(jù)庫的正常使用。在集群中數(shù)據(jù)組按數(shù)據(jù)節(jié)點的nodeID順序排序來劃分,NoOfReplica取值范圍為1~4,目前NDB只支持取值1~2。

  SQL節(jié)點:客戶端和外部API訪問集群數(shù)據(jù)的接口服務(wù)器(MySQL Server)。可根據(jù)不同應(yīng)用的需求靈活配置和構(gòu)造,如讀寫分離和負(fù)載均衡等。

  1.2 集群復(fù)制

  MySQL Cluster集群支持異步復(fù)制。復(fù)制結(jié)構(gòu)中包含主服務(wù)器(Master Server)和從服務(wù)器(Slave Server),數(shù)據(jù)和操作由主服務(wù)器復(fù)制到從服務(wù)器中。NDB二進制日志接口線程運行在主、從服務(wù)器兩端將數(shù)據(jù)庫的變化存儲到二進制格式的日志文件中,并通過復(fù)制通道,將主服務(wù)器的變化保存到從服務(wù)器中。集群復(fù)制如圖2所示。

002.jpg

  2 數(shù)據(jù)模型

  在綜合監(jiān)控系統(tǒng)中,數(shù)據(jù)庫平臺需要提供的數(shù)據(jù)功能包括:存儲設(shè)備及現(xiàn)場采集的實時狀態(tài)和信息,存儲設(shè)備及系統(tǒng)的配置參數(shù)(包括通信參數(shù)、設(shè)備信息、系統(tǒng)配置和權(quán)限配置等),存儲設(shè)備及系統(tǒng)的運行記錄數(shù)據(jù)(包括設(shè)備遙測或遙信值記錄、操作記錄等)。

  數(shù)據(jù)模型參考IEC-61970標(biāo)準(zhǔn),并根據(jù)軌道交通綜合監(jiān)控應(yīng)用的特點對公共對象接口模型CIM(Common Interface Model)做相應(yīng)的拓展設(shè)計。CIM是一個抽象模型,由描述系統(tǒng)的有關(guān)對象組成。這些對象又劃分成若干個邏輯包,每個邏輯包代表了整個系統(tǒng)模型的某個部分。核心包用于表示系統(tǒng)的核心結(jié)構(gòu)或構(gòu)件;拓?fù)浒糜诒硎緲?gòu)件之間的連接關(guān)系;運營包用于描述人員、權(quán)限、財務(wù)等運營關(guān)系;量測包和SCADA包用于描述通信、遙信、遙測、遙調(diào),遙控等結(jié)構(gòu)。數(shù)據(jù)模型組織圖如圖3所示。

003.jpg

 ?。?)核心包(Core):包括車站類、子系統(tǒng)類、區(qū)域類、設(shè)備類、設(shè)備端子類。車站對象表示軌道交通線上的車站,一般分為正線車站和車輛段兩種類型。有站號、站名等信息。區(qū)域?qū)ο蟊硎镜乩淼膮^(qū)域位置,主要有站廳、站臺、通道、隧道區(qū)間、大小端機房等,詳盡的區(qū)域描述有利于提高車站的應(yīng)急處理效率。子系統(tǒng)對象表示機電系統(tǒng)的功能和職責(zé)分類,軌道交通綜合監(jiān)控中的子系統(tǒng)主要包括環(huán)控(BAS)、信號(SIG)、電力(PSCADA)、售檢票(AFC)、視頻監(jiān)控(CCTV)、乘客信息與廣播(PIS&PA)等,運營中各子系統(tǒng)各司其職,保證整個系統(tǒng)的正常運行。設(shè)備對象描述設(shè)備的基本信息:設(shè)備編號、設(shè)備名稱、車站、區(qū)域、子系統(tǒng)、設(shè)備類型等。設(shè)備端子對象表示設(shè)備的連接屬性,一個設(shè)備可以對應(yīng)若干個設(shè)備連接端子。

  (2)拓?fù)浒═opology):用來描述設(shè)備的連接屬性,如軌道、道岔的連接,電力線路的連接等。主要包括連接節(jié)點類、拓?fù)涔?jié)點類和拓?fù)鋶u類。設(shè)備都是通過連接節(jié)點連接,如果在某個設(shè)備端子上存在多種連接方式(連接節(jié)點),則構(gòu)成拓?fù)涔?jié)點,在同一時刻拓?fù)涔?jié)點上只有一種連接方式有效。若干個拓?fù)涔?jié)點則構(gòu)成一個拓?fù)鋶u,拓?fù)鋶u即為統(tǒng)籌的聯(lián)鎖區(qū)。

 ?。?)運營包(Operation):包括員工、部門、權(quán)限等信息。其中用戶對象用來描述用戶的信息,部門對象用來描述運營層面職能部門的信息,權(quán)限對象則用于全局的用戶權(quán)限管理和系統(tǒng)權(quán)限認(rèn)證功能。

 ?。?)量測和SCADA包(Measure&SCADA):量測和SCADA包是系統(tǒng)的核心模塊,描述量測相關(guān)信息。通信對象和RTU對象表示SCADA通信的基本參數(shù),遙測類是模擬量輸入,累計量輸入和狀態(tài)量輸入的父類??刂祁愂窃O(shè)定點類和狀態(tài)量輸出類的父類。每個控制對象和遙測對象需要對應(yīng)到具體的設(shè)備及設(shè)備端子上才具有實際的意義。

  根據(jù)數(shù)據(jù)對象的信息和關(guān)系,將其映射為關(guān)系數(shù)據(jù)庫設(shè)計的數(shù)據(jù)模式。獨立性比較強的對象,映射為數(shù)據(jù)模式中的實體;對于依附于其他對象才有實際意義,或者具有一對一關(guān)系的對象,則映射為實體的屬性;而那些具有多對多關(guān)系的對象,則直接映射為數(shù)據(jù)模式中的關(guān)系。

  3 集群實現(xiàn)

  軌道交通綜合監(jiān)控系統(tǒng)一般分成中心和車站兩層結(jié)構(gòu),主要的操作都在控制中心上完成,特殊情況下操作權(quán)限可以下放到車站,以便車站進行就地控制。集群的數(shù)據(jù)節(jié)點分別設(shè)置在中心和車站,減輕系統(tǒng)的網(wǎng)絡(luò)通信負(fù)擔(dān),增加系統(tǒng)的可用性。另外,在控制中心一般還會設(shè)置一個備用中心,防止控制中心因服務(wù)器故障而失效。將備用中心配置成集群的數(shù)據(jù)復(fù)制,如果中心服務(wù)器發(fā)生故障,系統(tǒng)可以啟用中心備用的數(shù)據(jù)服務(wù)器,保證正常運行。集群結(jié)構(gòu)圖如圖4所示。

004.jpg

  MySQL Cluster數(shù)據(jù)庫集群有多個版本的安裝文件,本例中采用免安裝的Windows版本。這個版本的安裝過程比較簡單,只需要拷貝程序文件和配置文件即可。默認(rèn)的程序集文件的路徑為C:\mysql或C:\Program Files\MySQL\MySQL Server5.6。管理節(jié)點上需要的程序文件為(ndb_mgmd.exe和ndb_mgm.exe,后者為可選項),配置文件config.ini中需要包含節(jié)點信息(主機名、IP地址和節(jié)點類型等),數(shù)據(jù)存儲信息(數(shù)據(jù)存儲內(nèi)存和索引存儲內(nèi)存分配,數(shù)據(jù)文件和日志文件配置),數(shù)據(jù)組節(jié)點數(shù)量(NoOfReplica)等。數(shù)據(jù)節(jié)點上需要的程序文件是ndbd.exe或者ndbmtd.exe,配置文件中只需說明集群連接屬性(ndb-connectstring=管理節(jié)點IP地址:端口號,端口號默認(rèn)為1186)。SQL節(jié)點拷貝完全的免安裝文件,配置文件my.ini中只需說明集群連接屬性和存儲引擎參數(shù)即可(ndbcluster ndb-connectstring=管理節(jié)點IP:1186)。模型系統(tǒng)配置如表1所示。

005.jpg

  主集群安裝完成后,使用MySQL Sever Windows安裝文件(msi文件)安裝中心備用數(shù)據(jù)庫。備用數(shù)據(jù)庫不采用MySQL Cluster集群結(jié)構(gòu),以防止由于集群管理節(jié)點故障而導(dǎo)致整個集群失效。設(shè)置備用數(shù)據(jù)庫為主集群的復(fù)制。

  4 實際應(yīng)用

  按上述步驟安裝數(shù)據(jù)庫集群,然后根據(jù)設(shè)計的數(shù)據(jù)模式建立數(shù)據(jù)庫和數(shù)據(jù)表。在實際應(yīng)用中不僅需要記錄量測和SCADA數(shù)據(jù)的實時測量值,還需要記錄其歷史運行記錄,按照其特點分別創(chuàng)建參數(shù)庫SysPara、實時庫RealScada和歷史庫HisRecord 3個數(shù)據(jù)庫。參數(shù)庫包含核心包、運營包、量測包和SCADA包的通信鏈路表、RTU表、限值表、報警組表等信息;實時庫包含量測包和SCADA包的大部分具有實時內(nèi)容的部分以及實時報警表、拓?fù)浒膬?nèi)容;歷史庫主要是從實時庫轉(zhuǎn)儲的數(shù)據(jù)和用戶操作記錄表等信息。將3個數(shù)據(jù)庫建立在集群的數(shù)據(jù)節(jié)點上,參數(shù)庫和歷史庫采用磁盤表存儲,實時庫采用內(nèi)存表存儲。

  數(shù)據(jù)庫平臺是綜合監(jiān)控系統(tǒng)開發(fā)的基礎(chǔ),選用以上設(shè)計是因為IEC-61970的公共數(shù)據(jù)接口模型具有良好的結(jié)構(gòu)性和規(guī)范性,以及MySQL Cluster數(shù)據(jù)庫軟件高實時性、高可用性和易拓展的優(yōu)點。實驗過程中數(shù)據(jù)庫集群也表現(xiàn)出較好的性能,能夠滿足軌道交通綜合監(jiān)控系統(tǒng)的一般要求。但是在負(fù)載和性能方面,數(shù)據(jù)庫集群還有進一步優(yōu)化的空間。

  參考文獻

  [1] 金紫蘅.從雙機到四機中MySQL數(shù)據(jù)庫高可用性實現(xiàn)方法[J].中國科技信息,2011(16):91,96.

  [2] 程鵬,劉偉.電力SCADA系統(tǒng)運行平臺的存儲系統(tǒng)設(shè)計[J].計算機研究與發(fā)展,2011,48(z1):132-136.

  [3] 張慎明,劉國定.IEC61970標(biāo)準(zhǔn)簡介[J].電力系統(tǒng)自動化,2002(14):1-6.

  [4] 唐漢明,翟振興,蘭麗華.深入淺出MySQL數(shù)據(jù)庫開發(fā)、優(yōu)化與管理維護[M].北京:人民郵電出版社,2008.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。