錢俊鳳,付 鋆,張慶偉,馬艷潔,易 也,陸岫昶
(1.貴州電網有限責任公司,貴陽 550003;2.貴州電網有限責任公司貴陽供電局,貴陽 550003)
隨著信息技術的創新發展,信息系統數量驟增,應用深度不斷加強,如數據分析技術等。企業由于業務交互應用相對頻繁,系統核心數據量大且管理困難,所以企業信息系統間的數據交互共享管理需求顯得尤為突出。
信息系統是依據應用需求逐步規劃與建設的。隨著業務需求的更迭和新興業務需求的出現,都要建設對應的信息系統。使用信息系統就會產生業務數據,此數據有時還被其他系統所使用,但通常各信息系統都是獨立運行,管理與運算各自系統的數據得心應手,但需要其他系統數據時問題就會凸顯。由于缺少系統間數據交互與傳遞的有效手段,系統間的信息難以實現共享,便直接影響了信息化建設的成效。為解決這些困擾,需要一種切實可行的數據同步技術。
“南方電網”(以下簡稱“南網”)統一推廣的CSG II 人力資源管理系統在貴州建設實施,系統采用網、省兩級部署架構。為避免“信息孤島”,網、省兩級人力資源管理系統縱向貫通及數據同步實時性成為迫在眉睫的業務和管理需求。
DSG RealSync 主要原理見圖1。可知,RealSync 同步技術采用在源系統數據庫和目標系統數據庫部署代理工具,源系統數據庫的RealSync 代理對源系統數據庫日志做實時檢查,一旦源系統數據庫出現相關變化,立即在目標系統數據庫中實施相同操作,與源系統數據庫保持一致。實際上,業務人員操作系統對數據的變更,相關變化信息會保存在數據庫的重做日志里,RealSync 代理工具通過獲取日志信息做相關解析,確定在源系統數據庫中所做的命令或操作,隨之將分析結果經格式轉化得到DXF(DSG Extend Format)類型的數據形式,再傳給目標系統數據庫,其RealSync代理工具獲取相關信息后進行校核,在確保信息準確后,依照源系統數據庫中所做的命令或操作,依次完成對目標系統數據庫的操作[1]。
1.1.1 日志抓取
源系統數據庫的RealSync 代理定時對其重做日志進行分析,以獲取源系統數據庫命令或操作。
RealSync 代理定期檢查數據庫控制文件中的最新SCN(System Change Number )號對源系統數據庫進行判斷,查看數據是否發生了變化,即是否有操作產生。當確認數據庫控制文件中有新操作發生時,RealSync 代理就會獲取重做日志組及最新日志所在目錄。RealSync 代理根據解析信息對新增日志進行分析,再將對應數據存儲在聯機日志緩存文件中,以待進一步操作[2]。

圖1 RealSync 主要原理

圖2 操作傳輸原理
1.1.2 日志分析
Oracle 數據庫日志會記錄數據庫的變化或更改。一般而言,通過分析Oracle 數據庫日志可準確得到數據變化情況。RealSync 代理工具就是利用對數據庫日志的解析,獲取數據庫發生的所有命令或操作,并將其轉化成DXF類型的表現形式[3]。
1.1.3 操作合成
聯機日志緩存文件中包含已提交、未提交和回滾操作。操作合成是指按操作先后順序對操作命令做區分并以單次操作為單位,將已提交的操作發給目標數據庫做傳輸處理,未提交的操作本地保存,回滾操作做丟棄處理。操作合成功能模塊,通過解析日志發現之前未提交的操作已執行提交,會將對應操作發給目標數據庫做相關處理[4]。
1.1.4 操作傳輸
操作數據在傳送到目標數據庫前,先保存在源系統數據庫的緩存中,RealSync 的傳輸程序在緩存中得到操作數據,再封裝成TCP/IP 數據包發給源數據庫的導入程序。
目標數據庫的導入程序接收發送過來的操作數據包后,先保存在隊列中,再由裝載程序按照次序準確的裝載操作信息。
如圖2 所示,負責傳輸的進程(Export Process)從源系統數據庫操作隊列中依照先后時間獲取要傳輸到目標系統數據庫的操作信息,再將操作信息封裝成一個可供網絡傳輸的數據包,進而傳輸給目標系統數據庫[5]。目標系統在接到傳輸來的數據包文件后會核查數據包的完整性,通常該步驟是通過數據包文件大小來驗證,這也是避免源端與目標端的數據操作不一致,導致兩端數據差異。

圖3 數據同步架構
1.1.5 數據裝載
一般而言,數據庫的數據操作會有很多尋找定位的命令語句,如使用標準的結構化查詢語句進行相關查詢,系統必須找到目標并確定、記錄所查數據文件的定位,這都會引起大量數據庫索引查詢的發生。若同時進行上千條查詢命令時,系統性能會受到較大挑戰。
RealSync 通過行映射的方法達到數據記錄的高效定位:(1)RealSync 從源系統數據庫的日志中獲取數據操作信息,并把該操作記錄的具體定位標識出來;(2)當操作數據在目標系統數據庫中進行裝載時,通過目標端保存的行映射表,得到在目標端這條數據記錄應該在的位置行信息[6]。
因此,目標系統數據庫做數據裝載時,只需行信息就可得到數據寫入的準確位置,節省了數據庫中索引查找的時間。
1.1.6 增量數據裝載
實際生產中還有一種情況不可避免,就是在導出過程中存在新的改變數據的情況,即當前一個過程中大量數據裝載完成后,又發現新的針對同一數據的操作需要重新加載到目標端。
增量數據裝載的工作機制:通過跟蹤源系統數據庫從前一過程開始后的所有重做日志,從其中分析得到該時間段內的新增記錄,隨后再對目標系統數據庫進行同樣操作。若上述過程中出現裝載數據已在目標系統數據庫表中,RealSync 會先刪掉該條記錄,并插入新復制的記錄[7-8]。
1.2.1 支持多復制方式
支持多樣復制模式。可支持雙活和雙向復制,也支持一對多、多對一復制等;可支持DDL 或DML 相關操作復制,也支持相關函數、視圖、索引、視圖等對象復制。同時,復制中無須修改數據庫相關參數[9]。
1.2.2 按需復制
能滿足復制可選擇性,即按需復制。無須復制所有庫表,可據用戶需求做相應表信息復制[10]。
1.2.3 支持異構環境復制
基于RealSync 數據復制的工作原理,核心是日志分析,只要數據庫日志可以分析,復制中涉及的源系統與目標系統的操作系統和數據庫都可以屬于不同版本[11]。
1.2.4 數據一致性校核
Realsync 強調數據一致性校核,因為這是復制功能的基石。必須保證源系統和目標系統數據庫里的記錄完全相同[12]。
1.2.5 監視和告警
RealSync 會對數據復制過程做實時監視,當出現數據不一致時會及時告警,以免使源端和目標端產生更大的數據差異[13-14]。
1.2.6 支持災備功能
實際生產中可能發生某業務系統生產數據庫不能正常使用的情況,RealSync 可將備份(實時復制)數據庫切換成生產數據庫,增強業務系統應對數據庫風險的能力,這也是企業保值或增值的有力手段[15]。
貴州電網有限責任公司人資業務應用不斷豐富,業務量迅速增加,業務種類日益復雜,涉及許多網省同步的業務場景,企業必須加強管理,實現網省間安全、可靠的人資業務數據同步。有效管理和共享日益增長的業務數據,實現人力資源管理系統縱向貫通以及數據實時性同步,并且不影響各業務系統的日常應用,達到網、省公司人力資源管理數據共享傳輸的目的。
基于上述需求的人力資源管理系統網、省數據同步采用DSG RealSync 數據同步技術實現(見圖3),目前已達到預期數據同步目標。貴州電網有限責任公司10 個地市110 家單位的人資業務數據同步至網公司,網公司再將確定同步的人資數據傳輸至貴州側。這樣,完成了對RealSync 技術的深入研究與軟件部署以及對數據庫的全面配置與調試,實現了基于人資系統數據庫日志變化數據的實時同步、選擇性傳輸。
基于DSG Realsync 的人力資源管理系統網、省數據同步性能測試見表1。根據實際業務需求,測試了人力資源管理系統4 種核心場景,在同一并發用戶數(100 人)下的數據同步性能,測試結果主要分為數據同步時間和成功率。測試結果滿足測試目標,達到實際使用要求。

表1 數據同步性能測試結果
基于DSG Realsync 的人力資源管理系統網、省數據同步功能自上線試運行以來,一直穩定運行。從使用情況看,至今運行良好、性能穩定,各項技術指標在運行中均未出現異常,目前軟件運行情況能夠滿足正常業務使用。
2.2.1 業務連續性的數據同步
實現了在人力資源管理系統業務正常運轉的情況下,將源系統數據庫中的所有數據復制到目標系統數據庫,即初始化的數據同步。這里都是自動實現,無須人工操作,簡化了操作程序,節省了人工成本。
2.2.2 生產系統“零影響”
實時數據復制,對人力資源管理系統生產數據庫無任何性能影響,該數據復制技術不使用數據庫本身的引擎做數據變更獲取,而是利用數據庫本身信息得到源系統數據庫的變化,因此可做到對生產系統“零影響”。
3.1.1 提高企業信息價值
實現了系統間的信息流通和共享,提升了企業數據信息價值,公司只需根據業務規則制定信息的獲取或發布策略,即可輕易實現信息流轉。
3.1.2 提高管理效率
信息共享、異地數據同步的實現使管理者能便捷獲取寶貴的第一手數據資源,方便任務下發,更有助于管理層實現整體決策制定,可有效提升管理效率。
3.1.3 降低人為失誤
實現了在不中斷系統業務運行情況下將源數據庫數據同步到目標系統。該工作無須人工干預,簡化了操作步驟,大大降低了人為操作失誤。
3.2.1 降低項目成本
Realsync 支持生產系統和同步系統的異構環境及各種復制策略,如1:1 單向復制、一對多復制、多對一復制等,最大限度支持公司現有系統環境,降低公司軟硬件成本。同時采用TCP/IP 等網絡傳輸數據,降低了網絡帶寬要求和成本。
3.2.2 節約人工成本
異地系統數據同步技術的實現及應用,使源系統及目標系統間的業務數據實時交互,系統數據下達及上報均通過同步功能完成,節約了人工成本且不易出現人為失誤,使工作更加高效便捷。
本文闡述了基于DSG Realsync 的異地系統數據同步技術,并將其用于解決南方電網公司人力資源管理系統網、省間的數據同步需求。實踐證明,該異地系統數據同步技術可行,實現了應用單位穩定、可靠的運行和使用。同時無須人工干預,簡化了操作步驟,有效減少業務人員工作量,達到了預期效果。