李 闖
(1.五凌電力有限公司,湖南 長沙 410004;2.湖南省水電智慧化工程技術(shù)研究中心,湖南 長沙 410004)
國內(nèi)大多數(shù)行業(yè)的IT架構(gòu)中,數(shù)據(jù)庫是基礎(chǔ)和核心的內(nèi)容,做為信息資源的載體,選用安全可靠的數(shù)據(jù)庫是保障信息系統(tǒng)安全的重要內(nèi)容。國外數(shù)據(jù)庫進(jìn)入國內(nèi)市場比較早,國內(nèi)的金融、能源、通信等涉及國家經(jīng)濟(jì)命脈的行業(yè)和政府機(jī)關(guān)多采用Oracle、DB2、Sybase等國外數(shù)據(jù)庫,同時在國際政治和經(jīng)濟(jì)形勢多變的情況下,部分軟硬件系統(tǒng)的使用受到限制,數(shù)據(jù)安全受到威脅。
國產(chǎn)化自主可控的背后是國家對信息安全和數(shù)據(jù)安全的重視,國產(chǎn)數(shù)據(jù)庫經(jīng)過三十多年的發(fā)展技術(shù)逐步成熟,在安全性、穩(wěn)定性、高可用性及性能上都達(dá)到或超過國外數(shù)據(jù)庫的技術(shù)指標(biāo),已經(jīng)具備替代國外數(shù)據(jù)庫的能力,綜合多個因素?cái)?shù)據(jù)庫國產(chǎn)化替代成為必然。
電力行業(yè)一直以來采用國外關(guān)系型數(shù)據(jù)庫構(gòu)建應(yīng)用平臺,對關(guān)系型數(shù)據(jù)庫的基本能力、事務(wù)能力、高可用能力的有關(guān)鍵技術(shù)標(biāo)準(zhǔn),在性能、安全以及運(yùn)維方面也提出了要求,并制定了如數(shù)據(jù)庫通用訪問接口規(guī)范、通用數(shù)據(jù)模型、數(shù)據(jù)交換、傳輸?shù)确矫娴臉?biāo)準(zhǔn)規(guī)范,國產(chǎn)數(shù)據(jù)庫實(shí)現(xiàn)替換需要兼容國外數(shù)據(jù)庫及現(xiàn)行的行業(yè)開發(fā)標(biāo)準(zhǔn)。結(jié)合當(dāng)下復(fù)雜的國際關(guān)系,電力行業(yè)的特殊性,亟需穩(wěn)固數(shù)據(jù)底座,推進(jìn)國產(chǎn)化數(shù)據(jù)庫在智慧集控各業(yè)務(wù)系統(tǒng)上的使用已勢在必行。
作為發(fā)電集控中心智慧化建設(shè)的核心內(nèi)容之一的智能化調(diào)度服務(wù)指揮應(yīng)用平臺,是以集控中心為主體,集控電廠為支撐建設(shè)的基于AI智能語音的綜合指揮調(diào)度平臺,它通過辦公網(wǎng)絡(luò)和移動通信網(wǎng)絡(luò),運(yùn)用HTTPS協(xié)議下的信息加密、消息推送、語音提醒等技術(shù),實(shí)現(xiàn)調(diào)度指揮的信息化、數(shù)字化、網(wǎng)絡(luò)化,調(diào)度業(yè)務(wù)交互的多元化。
智慧調(diào)度和智慧語控系統(tǒng)是智能化調(diào)度服務(wù)指揮應(yīng)用平臺的兩大核心應(yīng)用,其對數(shù)據(jù)庫的安全合規(guī)、高性能、擴(kuò)展性、兼容性和可靠性要求極為嚴(yán)格。早期建設(shè)的信息系統(tǒng)的技術(shù)及設(shè)備還在應(yīng)用開源或非國產(chǎn)化數(shù)據(jù)庫,對集控中心現(xiàn)有信息系統(tǒng)的安全性、合規(guī)性提出了嚴(yán)峻考驗(yàn),綜上考慮,選擇一款國內(nèi)自主可控的數(shù)據(jù)庫作為智能化調(diào)度服務(wù)指揮應(yīng)用平臺建設(shè)的數(shù)據(jù)底座十分必要。
數(shù)據(jù)庫國產(chǎn)化的難點(diǎn)在于許多對數(shù)據(jù)可靠性要求較高的、業(yè)務(wù)應(yīng)用較復(fù)雜的系統(tǒng)長期以來對 Oracle 和 DB2 等數(shù)據(jù)庫形成依賴,適應(yīng)性、耦合度強(qiáng);此外國產(chǎn)化改造過程中,涉及現(xiàn)有數(shù)據(jù)庫與oracle數(shù)據(jù)庫的兼容性的問題,數(shù)據(jù)類型、語法格式、函數(shù)等內(nèi)容的匹配情況都增加了國產(chǎn)化的難度。如何減少對業(yè)務(wù)系統(tǒng)的影響,盡可能地實(shí)現(xiàn)國產(chǎn)數(shù)據(jù)庫的平滑遷移,都是數(shù)據(jù)庫國產(chǎn)化進(jìn)程中將會面臨的問題。
UXDB擁有自主知識產(chǎn)權(quán),是現(xiàn)有國產(chǎn)自主可控?cái)?shù)據(jù)庫軟件的重要成員之一,符合ANSI SQL國際標(biāo)準(zhǔn),提供完善的數(shù)據(jù)存儲與數(shù)據(jù)管理功能。支持行式存儲、列式存儲及行列混和存儲,支持結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化等多種數(shù)據(jù)類型,可同時滿足在線事務(wù)型業(yè)務(wù)與在線分析型業(yè)務(wù)場景需求。同時支持多種部署方式,包括:一主多備模式、讀寫分離模式、共享存儲模式、大規(guī)模并行計(jì)算集群模式,以及云部署。
UXDB可實(shí)現(xiàn)數(shù)據(jù)強(qiáng)一致性,支持事務(wù) ACID,支持復(fù)雜查詢及統(tǒng)計(jì)分析,可以通過增加節(jié)點(diǎn)擴(kuò)充數(shù)據(jù)庫容量及性能,實(shí)現(xiàn)高可用[1]。為了更好的實(shí)現(xiàn)國產(chǎn)數(shù)據(jù)庫的替代,在Oracle、MySQL等國外數(shù)據(jù)庫的兼容性方面也提出了獨(dú)立的解決方法,例如數(shù)據(jù)類型、SQL語法等方面及設(shè)置數(shù)據(jù)庫標(biāo)準(zhǔn)和兼容兩種模式。為簡化遷移過程提供了數(shù)據(jù)遷移工具,支持Oracle、SQL Server、MySQL等多種數(shù)據(jù)庫的遷移,具備完備的遷移功能并提升了數(shù)據(jù)遷移性能,并提供自定義函數(shù)/存儲過程等的遷移。從數(shù)據(jù)庫設(shè)計(jì)、研發(fā)、實(shí)施、運(yùn)維等各環(huán)節(jié),完全實(shí)現(xiàn)產(chǎn)品及解決方案的自主可控。使用自主可控?cái)?shù)據(jù)庫一方面可以從根本上杜絕系統(tǒng)后門,從而減少了安全隱患。另外也可以克服電力行業(yè)企業(yè)對國外商業(yè)數(shù)據(jù)庫產(chǎn)品的深度依賴性,從而大大減少了數(shù)據(jù)庫耗費(fèi),促進(jìn)企業(yè)信息化國產(chǎn)化率的升級,加大了數(shù)據(jù)安全的保護(hù)力量,為集控中心智慧化建設(shè)提供有力支撐。
智慧調(diào)度作為智能化調(diào)度服務(wù)指揮應(yīng)用平臺子系統(tǒng)之一,其核心功能是調(diào)度操作票管理及網(wǎng)絡(luò)發(fā)令,這也是智能化調(diào)度服務(wù)指揮應(yīng)用平臺中一項(xiàng)重要的建設(shè)內(nèi)容。基于靈活、方便地為調(diào)度操作票管理及網(wǎng)絡(luò)發(fā)令等綜合業(yè)務(wù)提供服務(wù),智慧調(diào)度系統(tǒng)的底層技術(shù)框架采用前后端分離技術(shù)搭建,前端采用Vue、Element UI,后端采用Spring Boot、Spring Security和Mybatis。權(quán)限認(rèn)證使用Jwt,支持多終端認(rèn)證系統(tǒng)。支持加載動態(tài)權(quán)限菜單,多方式輕松權(quán)限控制。
在開發(fā)智慧調(diào)度的過程中,持久層框架 Mybatis基于開源的關(guān)系數(shù)據(jù)庫Mysql搭建,其中數(shù)據(jù)查詢和存儲的SQL語句依據(jù)Mysql編寫,為保障業(yè)務(wù)正常使用,需將其無縫遷移到UXDB上。
智慧語控系統(tǒng)的核心功能是采取自然語言交互方式對PC、數(shù)字大屏、機(jī)器人等終端設(shè)備進(jìn)行語音操控。其中使用到了語音識別技術(shù)、語音合成技術(shù)、自然語言理解技術(shù)等AI能力,基于這些AI能力打造出智控機(jī)器人。
智慧語控系統(tǒng)分為客戶端和配置端,客戶端采取C/S架構(gòu)使用C#語言開發(fā),主要功能是對終端設(shè)備的控制和虛擬機(jī)器人形象展示;配置端采取B/S架構(gòu)通過瀏覽器頁面訪問,主要功能是對機(jī)器人控制的指令集合配置,控制路徑配置,用戶權(quán)限管理、數(shù)據(jù)字典管理等;基于微服務(wù)框架理念的輕量化考慮,后端服務(wù)框架采用Spring Boot,減小對中間件的依賴,安裝方便,易于擴(kuò)容和遷移。
在開發(fā)智慧語控系統(tǒng)的過程中,持久層框架使用spring Boot JPA,數(shù)據(jù)庫基于開源的關(guān)系數(shù)據(jù)庫Mysql搭建,其中配置端中涉及用戶權(quán)限數(shù)據(jù)、指令配置和數(shù)據(jù)字典等業(yè)務(wù)數(shù)據(jù)在mysql數(shù)據(jù)庫中存儲,這些業(yè)務(wù)數(shù)據(jù)的增刪改查sql語句均遵循mysql語句語法規(guī)范編寫,并且涉及使用mysql數(shù)據(jù)庫一些常用函數(shù)(比如日期格式化、字符串處理等),為保障業(yè)務(wù)正常使用,需將其無縫遷移到UXDB上。
2.4.1 數(shù)據(jù)遷移
(1)數(shù)據(jù)庫安裝
按照數(shù)據(jù)庫廠商提供的安裝手冊步驟安裝UXDB數(shù)據(jù)庫,導(dǎo)入開發(fā)許可文件。
(2)安裝ux_migration工具
解壓安裝包uxdb-migration-v3.0.4-RELEASE到目錄ux_migration。在目ux_migration下面運(yùn)行 install.exe工具和相關(guān)部分會被復(fù)制到UXDB Server安裝目錄下相應(yīng)位置。安裝過程中,如果出現(xiàn)打印ux_config命令不存在的情況,需確認(rèn)UXDB Server已經(jīng)安裝并且PATH環(huán)境變量已經(jīng)配置。
(3)遷移準(zhǔn)備
遷移開始前,需要記錄、統(tǒng)計(jì)原有數(shù)據(jù)庫的完整信息,方便在遷移完成后做對應(yīng)的檢查工作,其內(nèi)容主要有:源數(shù)據(jù)庫中的用戶、角色權(quán)限;源數(shù)據(jù)庫中數(shù)據(jù)表的定義(列名、數(shù)據(jù)類型、主鍵、外鍵等等);源數(shù)據(jù)庫中數(shù)據(jù)表中存儲的數(shù)據(jù)對象數(shù)量;源數(shù)據(jù)庫中紀(jì)錄索引的名稱、類型及實(shí)際工作狀態(tài)。
(4)遷移過程
UXDB提供了數(shù)據(jù)庫遷移工具 uxdb-migration,該工具支持遷移的源數(shù)據(jù)庫有:Mysql、SqlServer、Sybase等數(shù)據(jù)庫。
為了確保在遷移過程中,沒有任何新的數(shù)據(jù)庫修改,遷移前需要停止所有的應(yīng)用。關(guān)閉數(shù)據(jù)庫、關(guān)閉監(jiān)聽。然后重新打開數(shù)據(jù)庫,以確保沒有應(yīng)用連接到mysql數(shù)據(jù)庫。
運(yùn)行uxdb-migration,創(chuàng)建遷移任務(wù),輸入任務(wù)名稱(隨意),選擇源數(shù)據(jù)類型Mysql和目標(biāo)數(shù)據(jù)類型。
點(diǎn)擊下一步按鈕,按照界面提示,分別完成源數(shù)據(jù)庫鏈接(主機(jī)名稱、端口號、用戶名和密碼)、目標(biāo)數(shù)據(jù)庫鏈接(主機(jī)名稱、端口號、用戶名和密碼)、需要遷移的數(shù)據(jù)庫對象即可完成整個數(shù)據(jù)庫的遷移(在選擇遷移的數(shù)據(jù)庫時遷移內(nèi)容需要選中“遷移結(jié)構(gòu)和數(shù)據(jù)”選項(xiàng))。
(5)遷移過程監(jiān)控
數(shù)據(jù)庫遷移過程開始后,用戶可根據(jù)遷移監(jiān)控界面,了解數(shù)據(jù)庫遷移過程的進(jìn)度和詳細(xì)情況。數(shù)據(jù)庫遷移完成后,用戶可單擊“導(dǎo)出”按鈕,將“遷移日志”或“遷移 報告”以文本方式,導(dǎo)出到文件中保存。
(6)數(shù)據(jù)庫檢查
數(shù)據(jù)庫遷移完成后,進(jìn)行全方位的檢查,以確保數(shù)據(jù)移植的完整準(zhǔn)確。其主要內(nèi)容有:檢查導(dǎo)入數(shù)據(jù)的完整性;檢查表空間、數(shù)據(jù)文件狀態(tài)是否正確;檢查導(dǎo)入對象數(shù)量、狀態(tài)是否正確;檢查導(dǎo)入索引數(shù)量、狀態(tài)是否正確;檢查用戶角色權(quán)限是否與原有數(shù)據(jù)庫系統(tǒng)保持一致。
(7)修改應(yīng)用程序配置文件
修改Maven配置文件內(nèi)JDBC連接方式和依賴配置項(xiàng)。
2.4.2 問題及解決方法
(1)遷移工具軟件配置問題及解決方法
UXDB遷移工具內(nèi)jdbc驅(qū)動默認(rèn)安裝路徑為D:uxdbuxdbinstallUXDBAdmindriversjdbc,需嚴(yán)格按照此路徑對遷移工具進(jìn)行配置。
(2)應(yīng)用程序運(yùn)行在遷移后的UNXDB上,出現(xiàn)的問題及解決方法如表1所示。

表1 數(shù)據(jù)庫適配問題及解決方法
(1)遷移時目標(biāo)數(shù)據(jù)庫的名稱和源數(shù)據(jù)庫的名稱可以不一致,mysql里面是wsd數(shù)據(jù)庫,uxdb可以自定義一個數(shù)據(jù)庫作為目標(biāo)數(shù)據(jù)庫。
(2)遷移時由于mysql沒有模式的概念,但是遷移工具會根據(jù)源數(shù)據(jù)庫名稱,將數(shù)據(jù)遷移到同名的模式下,所以需要在UXDB中創(chuàng)建一個與源數(shù)據(jù)庫同名的模式。
(3)遷移工具使用時,必須與uxdb在同一臺機(jī)器上,且uxdb機(jī)器上需要安裝mysql客戶端,遷移工具進(jìn)行數(shù)據(jù)遷移時,需要使用mysql客戶端連接到mysql獲取到相應(yīng)的表結(jié)構(gòu)與數(shù)據(jù),再將結(jié)構(gòu)與數(shù)據(jù)轉(zhuǎn)移到uxdb上。
電力行業(yè)關(guān)系國民經(jīng)濟(jì)命脈和國家能源安全,由于行業(yè)的特殊性和信息安全的戰(zhàn)略需求,信息和數(shù)據(jù)的安全性顯得尤為重要。在電力行業(yè)各信息化系統(tǒng)中,高性能、易移植、可擴(kuò)展及兼容性強(qiáng)的可控?cái)?shù)據(jù)庫具有舉足輕重的地位。數(shù)據(jù)庫技術(shù)是發(fā)電集控中心智慧化建設(shè)中各信息系統(tǒng)的核心,也是智能化調(diào)度指揮應(yīng)用平臺必不可少的組成部分,通過在智慧調(diào)度、智慧語控等信息系統(tǒng)數(shù)據(jù)庫軟件安裝、遷移和適配工作,進(jìn)一步驗(yàn)證了某國產(chǎn)自主可控?cái)?shù)據(jù)庫的安全合規(guī)、高性能、可擴(kuò)展、易兼容等特性,這對今后國產(chǎn)數(shù)據(jù)庫在電力行業(yè)的發(fā)展和在各智能化信息系統(tǒng)的推廣均有重要的意義。