吳斗 蔣何 金鑫 李海
摘要:本文首先闡述了電力ERP分布式分布式數(shù)據(jù)庫的基本結(jié)構(gòu)和特性,對于其分布機(jī)制以及特點(diǎn)進(jìn)行了分析,在此基礎(chǔ)上闡述了分布式分布式數(shù)據(jù)庫關(guān)鍵技術(shù)等相關(guān)內(nèi)容以及具體應(yīng)用情況,希望能夠?qū)ο嚓P(guān)專業(yè)人士有所幫助。
關(guān)鍵詞:電力ERP系統(tǒng);X86架構(gòu);分布式數(shù)據(jù)庫;IB網(wǎng)絡(luò)
1 引言
雖然多年的發(fā)展出現(xiàn)了很多新型能源,但是電力能源還是最主要的能源之一。隨著信息技術(shù)的快速發(fā)展,電力系統(tǒng)的自動化水平有了飛速發(fā)展,特別是電力企業(yè)資源管理系統(tǒng)(以下簡稱“ERP”)對于確保電力系統(tǒng)運(yùn)行的安全穩(wěn)定性具有越來越重要的作用。對于電力系統(tǒng)來說,為了更好的滿足用戶需求就要建立起更為先進(jìn)的系統(tǒng),在其中融入分布式數(shù)據(jù)庫技術(shù)已經(jīng)成為關(guān)鍵內(nèi)容之一。分布式數(shù)據(jù)庫作為數(shù)據(jù)庫技術(shù)的關(guān)鍵分支之一有了多年發(fā)展,特別是近些年Infiniband(以下簡稱“IB”)網(wǎng)絡(luò)技術(shù)發(fā)展為分布式數(shù)據(jù)庫技術(shù)提供了有效支撐,將其應(yīng)用到電力系統(tǒng)中能夠滿足現(xiàn)代工程的需要,具有非常實(shí)用的價值。
2 分布式數(shù)據(jù)庫的特點(diǎn)介紹
2.1 傳統(tǒng)關(guān)系型數(shù)據(jù)庫特點(diǎn)
對于電力ERP系統(tǒng)數(shù)據(jù)庫來說,不但要滿足數(shù)據(jù)庫的基礎(chǔ)要求,同時也要滿足一體化系統(tǒng)(SCADA/EMSIDTS)應(yīng)用要求。其具有如下特點(diǎn):
(1)可以快速進(jìn)行數(shù)據(jù)訪問,符合實(shí)時性要求,并且能夠?qū)崿F(xiàn)數(shù)據(jù)恢復(fù)以及重載;
(2)符合電力系統(tǒng)網(wǎng)絡(luò)分析要求,能夠保證數(shù)據(jù)的實(shí)時性,并且可以實(shí)現(xiàn)數(shù)據(jù)的分布式存儲以及訪問;
(3)能夠?qū)崿F(xiàn)多個項(xiàng)目數(shù)據(jù)庫并存運(yùn)行,不同數(shù)據(jù)庫之間可以實(shí)現(xiàn)便捷的數(shù)據(jù)切換,以此來提升項(xiàng)目管理效率;
(4)能夠?qū)崿F(xiàn)數(shù)據(jù)庫鏡象功能,可以實(shí)現(xiàn)不同應(yīng)用之間的數(shù)據(jù)切換,同時數(shù)據(jù)庫之間的接口采用標(biāo)準(zhǔn)形式,能夠保證數(shù)據(jù)的安全性:
(5)具有較好的開放性,可以實(shí)現(xiàn)不同系統(tǒng)數(shù)據(jù)之間的交換和共享。
2.2 分布式數(shù)據(jù)庫特點(diǎn)
分布式數(shù)據(jù)庫系統(tǒng)并非只是將集中數(shù)據(jù)庫實(shí)現(xiàn)分散,其主要包括兩方面內(nèi)容,一方面為存儲要具有分散性,就是指要將數(shù)據(jù)庫中數(shù)據(jù)信息存儲在不同計(jì)算機(jī)設(shè)備當(dāng)中,另一方面數(shù)據(jù)要具有整體性,就是指存儲在每一個計(jì)算機(jī)當(dāng)中的數(shù)據(jù)在邏輯方面要具有較強(qiáng)的關(guān)聯(lián)性,要構(gòu)建成整體??偟膩碚f其具有如下幾方面特點(diǎn):
(1)其采取的是自治和集中結(jié)合的控制結(jié)構(gòu),對于分布式數(shù)據(jù)庫來說,其最主要的內(nèi)容就是數(shù)據(jù)的重復(fù)以及合理分配;
(2)分布式分布式數(shù)據(jù)庫要具有整體性,同時要具有可串行性,并且能夠有效恢復(fù);
(3) 一定程度上提升數(shù)據(jù)的冗余度,就是指為了確保數(shù)據(jù)的安全性,在分布式數(shù)據(jù)庫系統(tǒng)中要設(shè)定相應(yīng)的數(shù)據(jù)冗余,需要在不同區(qū)域存儲數(shù)據(jù)的不同副本;
(4)具有透明性,用戶無需注意數(shù)據(jù)物理位置分布以及邏輯分片情況。
現(xiàn)階段有關(guān)分布式數(shù)據(jù)庫技術(shù)方面的研究更多關(guān)注的是服務(wù)器技術(shù)內(nèi)容,分布式數(shù)據(jù)庫采取的是多X86服務(wù)器模式,不同數(shù)據(jù)存儲在不同服務(wù)器當(dāng)中,不同客戶能夠?qū)Χ鄠€數(shù)據(jù)庫數(shù)據(jù)實(shí)時共享,并且不同服務(wù)器之間能夠協(xié)同工作,可以實(shí)現(xiàn)數(shù)據(jù)的透明性訪問。
2.3 IB網(wǎng)絡(luò)技術(shù)特點(diǎn)
IB是一種計(jì)算機(jī)網(wǎng)絡(luò)連接標(biāo)準(zhǔn),主要用于節(jié)點(diǎn)間需要有大量數(shù)據(jù)傳輸需求的HPC高性能計(jì)算,隨著技術(shù)發(fā)展和新業(yè)務(wù)場景出現(xiàn),使用領(lǐng)域變得越來越廣泛。整個IB網(wǎng)絡(luò)由主機(jī)上的HCA (HostChannel Adapter)卡,IB交換機(jī)和IB線纜組成,IB網(wǎng)絡(luò)能夠保證在低延時情況( 200ns)通過4倍聚合通道(4X aggregate links)的單個物理接口支持最高lOOGb的帶寬。
IB網(wǎng)絡(luò)相比較于傳統(tǒng)的光纖傳輸技術(shù),具有高帶寬、低延遲的優(yōu)勢,與以太網(wǎng)及光纖網(wǎng)絡(luò)的技術(shù)參數(shù)對比如表1。
IB技術(shù)與以太網(wǎng)萬兆技術(shù)的對比說明:
(1)主流設(shè)備性能對比。目前IB交換機(jī)主流為100G產(chǎn)品,100G已經(jīng)推出并且進(jìn)入市場;以太網(wǎng)絡(luò)目前依然以10G為主。
(2)性價比。目前每GB的的費(fèi)用IB的綜合成本為以太網(wǎng)絡(luò)的一半,25G、100G以太網(wǎng)絡(luò)價格很高,大規(guī)模商用成本很高,IB的100G商用市場價格成熟。
(3)性能。TCP的性能開銷遠(yuǎn)高于IB的RDMA開銷。
(4)通用性。以太的兼容性非常好,適用場景廣泛,目前以太網(wǎng)絡(luò)也能支持RoCE(RDMA over以太)但是支持的設(shè)備非常少,支持的軟件就更少了,成熟度也不高。
3 電力ERP分布式數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)構(gòu)
分布式分布式數(shù)據(jù)庫系統(tǒng)融合了實(shí)時、分布式數(shù)據(jù)庫的優(yōu)勢,以內(nèi)存數(shù)據(jù)庫為基礎(chǔ)滿足網(wǎng)絡(luò)情況下控制系統(tǒng)的實(shí)時性要求,能夠推動電力系統(tǒng)的進(jìn)一步發(fā)展和應(yīng)用。以此理念為基礎(chǔ)并最大程度利用Infiniband網(wǎng)絡(luò)系統(tǒng)帶寬,能夠?qū)崿F(xiàn)負(fù)載之間的均衡以及雙機(jī)備用,其中較為典型的ERP系統(tǒng)運(yùn)行結(jié)構(gòu)如圖1所示。
從圖1能夠得知ERP系統(tǒng)中存在著多種類型的服務(wù)器,不同應(yīng)用服務(wù)器中都設(shè)置有差異化的內(nèi)存數(shù)據(jù)庫以及服務(wù)進(jìn)程,并且不同類型服務(wù)器之間也可以實(shí)時進(jìn)行數(shù)據(jù)的共享和交換,以此來確保數(shù)據(jù)的同步性以及一致性。在充分考慮電力系統(tǒng)運(yùn)行數(shù)據(jù)訪問要求的基礎(chǔ)上可以將數(shù)據(jù)氛圍“動態(tài)數(shù)據(jù)”、“靜態(tài)數(shù)據(jù)”、“統(tǒng)計(jì)計(jì)算數(shù)據(jù)”等類型,對于這些不同類型數(shù)據(jù)來說需要采取“提取頻繁訪問動態(tài)數(shù)據(jù)”以及“計(jì)算數(shù)據(jù)和部分必要靜態(tài)屬性信息”等數(shù)據(jù)存儲要求。
在分布式數(shù)據(jù)庫系統(tǒng)組織結(jié)構(gòu)設(shè)計(jì)過程中,為了確保實(shí)現(xiàn)數(shù)據(jù)共享可以采用現(xiàn)行操作系統(tǒng)所具有的共享內(nèi)存機(jī)制,在初始化過程中就可以將整個內(nèi)存數(shù)據(jù)庫映像文件載入到共享內(nèi)存區(qū)當(dāng)中,在實(shí)際運(yùn)行時將完整的數(shù)據(jù)庫或者其中某一部分映射到相應(yīng)的虛擬地址空間中來進(jìn)行訪問??梢酝ㄟ^指針的方式來應(yīng)對關(guān)系以及索引數(shù)據(jù)存儲在內(nèi)存中的情況,在實(shí)際應(yīng)用時利用指針或者數(shù)據(jù)庫偏移量訪問數(shù)據(jù)來快速實(shí)現(xiàn)。因?yàn)橹羔樉哂泄潭ǖ拈L度,所以能夠有效處理變長字段方面的問題。除此之外,如果數(shù)據(jù)庫中多次出現(xiàn)較大的數(shù)據(jù)對象,那么只要在內(nèi)存中存儲以此即可,其他的地方就可以利用指針對其進(jìn)行引用。
分布式分布式數(shù)據(jù)庫結(jié)構(gòu)主要包括“數(shù)據(jù)庫模式信息區(qū)”、“數(shù)據(jù)段索引區(qū)”、“數(shù)據(jù)段信息區(qū)”以及“數(shù)據(jù)區(qū)”等相互獨(dú)立的共享內(nèi)存區(qū),一般情況下數(shù)據(jù)段信息區(qū)和數(shù)據(jù)區(qū)都是共同應(yīng)用的,能夠?qū)﹄娏ο到y(tǒng)數(shù)據(jù)庫中不同數(shù)據(jù)關(guān)系進(jìn)行映射。另外,對于某些較為常用的數(shù)據(jù)表來說,可以增設(shè)一個內(nèi)存區(qū)域,可以通過哈希函數(shù)直接查詢到對應(yīng)的數(shù)據(jù)記錄,從而提升訪問速度。對于數(shù)據(jù)區(qū)當(dāng)中的每一個屬性來說,都是通過數(shù)據(jù)結(jié)構(gòu)來指定的,所以為了進(jìn)一步提升訪問速度可以將某些常用信息實(shí)時冗余配置。同時,電力系統(tǒng)中某些應(yīng)用軟件會通過連續(xù)內(nèi)存實(shí)施數(shù)據(jù)處理,能夠進(jìn)一步增強(qiáng)系統(tǒng)實(shí)時性,所以在鏡像內(nèi)存映像過程中,每個關(guān)系表數(shù)據(jù)空間都要實(shí)施連續(xù)內(nèi)存分配。分布式數(shù)據(jù)庫系統(tǒng)內(nèi)存組織結(jié)構(gòu)如圖2所示。
4 分布式數(shù)據(jù)庫機(jī)制的實(shí)現(xiàn)
4.1 分布式數(shù)據(jù)庫的部署設(shè)計(jì)
通過部署計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)的硬件分布設(shè)置,從ERP系統(tǒng)運(yùn)行結(jié)構(gòu)圖中能夠得知,關(guān)鍵服務(wù)節(jié)點(diǎn)都采取的是多副本的模式,這樣能夠確保內(nèi)存數(shù)據(jù)庫的實(shí)時復(fù)制備份,并且也可以實(shí)現(xiàn)負(fù)載之間的均衡性。例如對于三臺計(jì)算節(jié)點(diǎn)來說,正常運(yùn)行過程中每個服務(wù)器都負(fù)責(zé)直屬下級網(wǎng)絡(luò)采集終端(RTU)數(shù)據(jù)報(bào)文傳輸以及解析,能夠?qū)崿F(xiàn)數(shù)據(jù)流以及訪問服務(wù)均衡負(fù)載。一旦某些服務(wù)器出現(xiàn)故障,另外的服務(wù)器就會立即接管服務(wù)而保證無縫連接。故障服務(wù)器恢復(fù)之后每個服務(wù)器重新回到正常狀態(tài),實(shí)現(xiàn)網(wǎng)絡(luò)和訪問的均衡性處理。
內(nèi)存數(shù)據(jù)庫文件分布式設(shè)置。通過內(nèi)存結(jié)構(gòu)示意圖能夠得知,電力ERP系統(tǒng)具有前置數(shù)據(jù)采集通信服務(wù)、SCADA服務(wù)、PAS應(yīng)用服務(wù)和DTS應(yīng)用服務(wù)等多個關(guān)鍵的數(shù)據(jù)處理服務(wù)。每種類型的服務(wù)模式對于數(shù)據(jù)的要求也有所差異,因此需要按照部署服務(wù)節(jié)點(diǎn)的差異而形成不同內(nèi)存數(shù)據(jù)庫映像文件,在對數(shù)據(jù)映像進(jìn)行訪問過程中分別實(shí)時加載就可以對數(shù)據(jù)進(jìn)行訪問。
對于分布式數(shù)據(jù)庫來說,可以根據(jù)客戶/服務(wù)器模式進(jìn)行建設(shè),對于分布式數(shù)據(jù)庫來說,整個數(shù)據(jù)庫內(nèi)只有一個節(jié)點(diǎn)數(shù)據(jù)庫作為參考,而其他節(jié)點(diǎn)數(shù)據(jù)庫參照此節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一性,所以將設(shè)置在主機(jī)上的內(nèi)存數(shù)據(jù)稱之為參考庫,而將設(shè)置在備用機(jī)上的內(nèi)存數(shù)據(jù)稱之為復(fù)制庫。
4.2 實(shí)現(xiàn)分布部署的關(guān)鍵技術(shù)分析
數(shù)據(jù)庫自動復(fù)制技術(shù)(DAR)分析,通過有效的數(shù)據(jù)庫自動復(fù)制技術(shù)能夠?qū)崿F(xiàn)以上所述“參考庫”以及“復(fù)制庫”之間數(shù)據(jù)的統(tǒng)一性。按照數(shù)據(jù)更新的差異,數(shù)據(jù)庫自動復(fù)制技術(shù)可以實(shí)現(xiàn)數(shù)據(jù)更新以及下載等方面的內(nèi)容。數(shù)據(jù)庫自動復(fù)制技術(shù)總的來說可以分成三種技術(shù)類型:
(1)非優(yōu)化更新/下載技術(shù)。此技術(shù)主要應(yīng)用在數(shù)據(jù)庫規(guī)模相對較小的情況下,并不適合規(guī)模較大且完全下載持續(xù)時間的數(shù)據(jù)庫,尤其是在數(shù)據(jù)庫只是某些部分需要修改,而復(fù)制庫節(jié)點(diǎn)請求下載的情況下;
(2)基本更新/下載技術(shù)。此技術(shù)能夠選擇性的進(jìn)行復(fù)制庫請求以及出現(xiàn)變化表的下載,利用mod count字段進(jìn)行表的修改計(jì)數(shù),在實(shí)際運(yùn)行中若是數(shù)據(jù)庫更新器對于表實(shí)施修改,那么modcount字段就會自動增加并且此字段新值被傳播給全部復(fù)制數(shù)據(jù)庫,這樣全部數(shù)據(jù)庫能夠得到及時更新。若是所復(fù)制數(shù)據(jù)庫需要主動下載,那么其會先向參數(shù)數(shù)據(jù)庫下載服務(wù)器發(fā)送mod count,在滿足條件的情況下下載相應(yīng)表。
(3)增強(qiáng)更新/下載技術(shù)。此技術(shù)可以實(shí)現(xiàn)和復(fù)制庫請求表中被修改記錄的下載,為了能夠?qū)崿F(xiàn)對修改的檢測,此技術(shù)要設(shè)置更改計(jì)數(shù)表來放置基本表項(xiàng)的更改次數(shù)。但是在實(shí)施時具有額外的內(nèi)存開銷,所以此技術(shù)比較適合用在更改基本項(xiàng)的超大表中。
4.3 心跳報(bào)文廣播服務(wù)
雖然多機(jī)具有同樣的優(yōu)先級,但是在多機(jī)設(shè)置時會在某一時間點(diǎn)存在一臺作為主機(jī)服務(wù),其他的作為備機(jī)。先要按照服務(wù)進(jìn)程配置參數(shù)設(shè)定某臺當(dāng)做主服務(wù)器,提供其相對較高的優(yōu)先級,而其他機(jī)器的服務(wù)級別相對較低。那么先要通過最高級別的服務(wù)器作為主機(jī)進(jìn)行使用,主機(jī)和備機(jī)利用廣播的心跳報(bào)文確保通信的同步以及服務(wù)的監(jiān)控和切換。
心跳報(bào)文廣播具有比較高的效率,主要通過UDP協(xié)議進(jìn)行通信,更適合應(yīng)用在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)未知的情況下,但是其可靠性相對較低,若是系統(tǒng)發(fā)生連續(xù)性報(bào)文廣播,那么其報(bào)文丟失率接近1/5。通過對以往具體情況分析得知,報(bào)文丟失更多出現(xiàn)在接收端,造成此問題的主要原因在于網(wǎng)卡中斷的處理效率相對較低,接收線程無法對連續(xù)報(bào)文進(jìn)行處理,從而造成接收報(bào)文隊(duì)列溢出的問題。為了能夠有效提升其可靠性,可以對小報(bào)文進(jìn)行緩存合并,每個報(bào)文發(fā)送之間采取一定間歇及采取雙收策略,實(shí)際應(yīng)用表明這樣可基本消除報(bào)文丟失現(xiàn)象。
5 結(jié)束語
本文主要對電力ERP系統(tǒng)分布式數(shù)據(jù)庫特點(diǎn)和設(shè)計(jì)難點(diǎn)進(jìn)行了分析,同時對于分布式數(shù)據(jù)庫的關(guān)鍵性計(jì)數(shù)實(shí)施了較為詳盡的闡述。通過分布式數(shù)據(jù)庫技術(shù)的應(yīng)用能夠有效增加系統(tǒng)開發(fā)的效率、降低開發(fā)費(fèi)用,具有非常使用的應(yīng)用價值,對于進(jìn)一步推動電力系統(tǒng)發(fā)展具有現(xiàn)實(shí)意義。
以某省公司電力ERP系統(tǒng)經(jīng)過分布式改造為例,在ERP系統(tǒng)資產(chǎn)余額查詢、人資普查報(bào)表、合同信息查詢、項(xiàng)目采購清單顯示和工單查詢統(tǒng)計(jì)報(bào)表等100余項(xiàng)核心功能進(jìn)行對比測試,使用基于X86的分布式數(shù)據(jù)庫系統(tǒng)與傳統(tǒng)小型機(jī)系統(tǒng)相比,響應(yīng)時間縮短3-20倍,系統(tǒng)整體性能提升超10倍,1/0讀寫能力提升超100倍,計(jì)算能力提升達(dá)15倍,大數(shù)據(jù)業(yè)務(wù)查詢提升8-30倍,系統(tǒng)更加穩(wěn)定高效。
參考文獻(xiàn)
[1]黃宜林.分布式數(shù)據(jù)庫設(shè)計(jì)在電網(wǎng)調(diào)度系統(tǒng)中的應(yīng)用[J].集成電路應(yīng)用,2019 (08):45-47.
[2]焦冬冬,張晨,房志奇,康衛(wèi),基于云技術(shù)的分布式分布式數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2017 (11):88-91.
[3]武君勝,吳德州.面向電力系統(tǒng)的分布式分布式數(shù)據(jù)庫關(guān)鍵技術(shù)及應(yīng)用[J].中國科技論文在線,2008 (02):88-91.
[4]吳德州,武君勝.面向電力系統(tǒng)的分布式分布式數(shù)據(jù)庫設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2008 (02):15-17.
作者簡介
吳斗(1989-),男,四川省資陽市人。碩士研究生,工程師。主要從事信息化建設(shè)、運(yùn)維管理工作,研究方向?yàn)檫\(yùn)維自動化、數(shù)據(jù)挖掘、人工智能。
蔣何(1992-),男,四川省遂寧市人。碩士研究生,助理工程師。主要從事信息系統(tǒng)運(yùn)維工作。
金鑫(1990-),男,四川省成都市人。大學(xué)本科學(xué)歷,助理工程師。主要從事信息系統(tǒng)運(yùn)維工作。
李海(1982-),男,四川省綿陽市人。大學(xué)本科學(xué)歷,工程師,主要從事數(shù)據(jù)庫運(yùn)維工作及數(shù)據(jù)庫架構(gòu)優(yōu)化工作。