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

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