錢俊鳳,付 鋆,張慶偉,馬艷潔,易 也,陸岫昶
(1.貴州電網(wǎng)有限責(zé)任公司,貴陽(yáng) 550003;2.貴州電網(wǎng)有限責(zé)任公司貴陽(yáng)供電局,貴陽(yáng) 550003)
隨著信息技術(shù)的創(chuàng)新發(fā)展,信息系統(tǒng)數(shù)量驟增,應(yīng)用深度不斷加強(qiáng),如數(shù)據(jù)分析技術(shù)等。企業(yè)由于業(yè)務(wù)交互應(yīng)用相對(duì)頻繁,系統(tǒng)核心數(shù)據(jù)量大且管理困難,所以企業(yè)信息系統(tǒng)間的數(shù)據(jù)交互共享管理需求顯得尤為突出。
信息系統(tǒng)是依據(jù)應(yīng)用需求逐步規(guī)劃與建設(shè)的。隨著業(yè)務(wù)需求的更迭和新興業(yè)務(wù)需求的出現(xiàn),都要建設(shè)對(duì)應(yīng)的信息系統(tǒng)。使用信息系統(tǒng)就會(huì)產(chǎn)生業(yè)務(wù)數(shù)據(jù),此數(shù)據(jù)有時(shí)還被其他系統(tǒng)所使用,但通常各信息系統(tǒng)都是獨(dú)立運(yùn)行,管理與運(yùn)算各自系統(tǒng)的數(shù)據(jù)得心應(yīng)手,但需要其他系統(tǒng)數(shù)據(jù)時(shí)問(wèn)題就會(huì)凸顯。由于缺少系統(tǒng)間數(shù)據(jù)交互與傳遞的有效手段,系統(tǒng)間的信息難以實(shí)現(xiàn)共享,便直接影響了信息化建設(shè)的成效。為解決這些困擾,需要一種切實(shí)可行的數(shù)據(jù)同步技術(shù)。
“南方電網(wǎng)”(以下簡(jiǎn)稱“南網(wǎng)”)統(tǒng)一推廣的CSG II 人力資源管理系統(tǒng)在貴州建設(shè)實(shí)施,系統(tǒng)采用網(wǎng)、省兩級(jí)部署架構(gòu)。為避免“信息孤島”,網(wǎng)、省兩級(jí)人力資源管理系統(tǒng)縱向貫通及數(shù)據(jù)同步實(shí)時(shí)性成為迫在眉睫的業(yè)務(wù)和管理需求。
DSG RealSync 主要原理見(jiàn)圖1??芍?,RealSync 同步技術(shù)采用在源系統(tǒng)數(shù)據(jù)庫(kù)和目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)部署代理工具,源系統(tǒng)數(shù)據(jù)庫(kù)的RealSync 代理對(duì)源系統(tǒng)數(shù)據(jù)庫(kù)日志做實(shí)時(shí)檢查,一旦源系統(tǒng)數(shù)據(jù)庫(kù)出現(xiàn)相關(guān)變化,立即在目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)中實(shí)施相同操作,與源系統(tǒng)數(shù)據(jù)庫(kù)保持一致。實(shí)際上,業(yè)務(wù)人員操作系統(tǒng)對(duì)數(shù)據(jù)的變更,相關(guān)變化信息會(huì)保存在數(shù)據(jù)庫(kù)的重做日志里,RealSync 代理工具通過(guò)獲取日志信息做相關(guān)解析,確定在源系統(tǒng)數(shù)據(jù)庫(kù)中所做的命令或操作,隨之將分析結(jié)果經(jīng)格式轉(zhuǎn)化得到DXF(DSG Extend Format)類型的數(shù)據(jù)形式,再傳給目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù),其RealSync代理工具獲取相關(guān)信息后進(jìn)行校核,在確保信息準(zhǔn)確后,依照源系統(tǒng)數(shù)據(jù)庫(kù)中所做的命令或操作,依次完成對(duì)目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)的操作[1]。
1.1.1 日志抓取
源系統(tǒng)數(shù)據(jù)庫(kù)的RealSync 代理定時(shí)對(duì)其重做日志進(jìn)行分析,以獲取源系統(tǒng)數(shù)據(jù)庫(kù)命令或操作。
RealSync 代理定期檢查數(shù)據(jù)庫(kù)控制文件中的最新SCN(System Change Number )號(hào)對(duì)源系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行判斷,查看數(shù)據(jù)是否發(fā)生了變化,即是否有操作產(chǎn)生。當(dāng)確認(rèn)數(shù)據(jù)庫(kù)控制文件中有新操作發(fā)生時(shí),RealSync 代理就會(huì)獲取重做日志組及最新日志所在目錄。RealSync 代理根據(jù)解析信息對(duì)新增日志進(jìn)行分析,再將對(duì)應(yīng)數(shù)據(jù)存儲(chǔ)在聯(lián)機(jī)日志緩存文件中,以待進(jìn)一步操作[2]。
圖1 RealSync 主要原理
圖2 操作傳輸原理
1.1.2 日志分析
Oracle 數(shù)據(jù)庫(kù)日志會(huì)記錄數(shù)據(jù)庫(kù)的變化或更改。一般而言,通過(guò)分析Oracle 數(shù)據(jù)庫(kù)日志可準(zhǔn)確得到數(shù)據(jù)變化情況。RealSync 代理工具就是利用對(duì)數(shù)據(jù)庫(kù)日志的解析,獲取數(shù)據(jù)庫(kù)發(fā)生的所有命令或操作,并將其轉(zhuǎn)化成DXF類型的表現(xiàn)形式[3]。
1.1.3 操作合成
聯(lián)機(jī)日志緩存文件中包含已提交、未提交和回滾操作。操作合成是指按操作先后順序?qū)Σ僮髅钭鰠^(qū)分并以單次操作為單位,將已提交的操作發(fā)給目標(biāo)數(shù)據(jù)庫(kù)做傳輸處理,未提交的操作本地保存,回滾操作做丟棄處理。操作合成功能模塊,通過(guò)解析日志發(fā)現(xiàn)之前未提交的操作已執(zhí)行提交,會(huì)將對(duì)應(yīng)操作發(fā)給目標(biāo)數(shù)據(jù)庫(kù)做相關(guān)處理[4]。
1.1.4 操作傳輸
操作數(shù)據(jù)在傳送到目標(biāo)數(shù)據(jù)庫(kù)前,先保存在源系統(tǒng)數(shù)據(jù)庫(kù)的緩存中,RealSync 的傳輸程序在緩存中得到操作數(shù)據(jù),再封裝成TCP/IP 數(shù)據(jù)包發(fā)給源數(shù)據(jù)庫(kù)的導(dǎo)入程序。
目標(biāo)數(shù)據(jù)庫(kù)的導(dǎo)入程序接收發(fā)送過(guò)來(lái)的操作數(shù)據(jù)包后,先保存在隊(duì)列中,再由裝載程序按照次序準(zhǔn)確的裝載操作信息。
如圖2 所示,負(fù)責(zé)傳輸?shù)倪M(jìn)程(Export Process)從源系統(tǒng)數(shù)據(jù)庫(kù)操作隊(duì)列中依照先后時(shí)間獲取要傳輸?shù)侥繕?biāo)系統(tǒng)數(shù)據(jù)庫(kù)的操作信息,再將操作信息封裝成一個(gè)可供網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包,進(jìn)而傳輸給目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)[5]。目標(biāo)系統(tǒng)在接到傳輸來(lái)的數(shù)據(jù)包文件后會(huì)核查數(shù)據(jù)包的完整性,通常該步驟是通過(guò)數(shù)據(jù)包文件大小來(lái)驗(yàn)證,這也是避免源端與目標(biāo)端的數(shù)據(jù)操作不一致,導(dǎo)致兩端數(shù)據(jù)差異。
圖3 數(shù)據(jù)同步架構(gòu)
1.1.5 數(shù)據(jù)裝載
一般而言,數(shù)據(jù)庫(kù)的數(shù)據(jù)操作會(huì)有很多尋找定位的命令語(yǔ)句,如使用標(biāo)準(zhǔn)的結(jié)構(gòu)化查詢語(yǔ)句進(jìn)行相關(guān)查詢,系統(tǒng)必須找到目標(biāo)并確定、記錄所查數(shù)據(jù)文件的定位,這都會(huì)引起大量數(shù)據(jù)庫(kù)索引查詢的發(fā)生。若同時(shí)進(jìn)行上千條查詢命令時(shí),系統(tǒng)性能會(huì)受到較大挑戰(zhàn)。
RealSync 通過(guò)行映射的方法達(dá)到數(shù)據(jù)記錄的高效定位:(1)RealSync 從源系統(tǒng)數(shù)據(jù)庫(kù)的日志中獲取數(shù)據(jù)操作信息,并把該操作記錄的具體定位標(biāo)識(shí)出來(lái);(2)當(dāng)操作數(shù)據(jù)在目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)中進(jìn)行裝載時(shí),通過(guò)目標(biāo)端保存的行映射表,得到在目標(biāo)端這條數(shù)據(jù)記錄應(yīng)該在的位置行信息[6]。
因此,目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)做數(shù)據(jù)裝載時(shí),只需行信息就可得到數(shù)據(jù)寫入的準(zhǔn)確位置,節(jié)省了數(shù)據(jù)庫(kù)中索引查找的時(shí)間。
1.1.6 增量數(shù)據(jù)裝載
實(shí)際生產(chǎn)中還有一種情況不可避免,就是在導(dǎo)出過(guò)程中存在新的改變數(shù)據(jù)的情況,即當(dāng)前一個(gè)過(guò)程中大量數(shù)據(jù)裝載完成后,又發(fā)現(xiàn)新的針對(duì)同一數(shù)據(jù)的操作需要重新加載到目標(biāo)端。
增量數(shù)據(jù)裝載的工作機(jī)制:通過(guò)跟蹤源系統(tǒng)數(shù)據(jù)庫(kù)從前一過(guò)程開(kāi)始后的所有重做日志,從其中分析得到該時(shí)間段內(nèi)的新增記錄,隨后再對(duì)目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行同樣操作。若上述過(guò)程中出現(xiàn)裝載數(shù)據(jù)已在目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)表中,RealSync 會(huì)先刪掉該條記錄,并插入新復(fù)制的記錄[7-8]。
1.2.1 支持多復(fù)制方式
支持多樣復(fù)制模式??芍С蛛p活和雙向復(fù)制,也支持一對(duì)多、多對(duì)一復(fù)制等;可支持DDL 或DML 相關(guān)操作復(fù)制,也支持相關(guān)函數(shù)、視圖、索引、視圖等對(duì)象復(fù)制。同時(shí),復(fù)制中無(wú)須修改數(shù)據(jù)庫(kù)相關(guān)參數(shù)[9]。
1.2.2 按需復(fù)制
能滿足復(fù)制可選擇性,即按需復(fù)制。無(wú)須復(fù)制所有庫(kù)表,可據(jù)用戶需求做相應(yīng)表信息復(fù)制[10]。
1.2.3 支持異構(gòu)環(huán)境復(fù)制
基于RealSync 數(shù)據(jù)復(fù)制的工作原理,核心是日志分析,只要數(shù)據(jù)庫(kù)日志可以分析,復(fù)制中涉及的源系統(tǒng)與目標(biāo)系統(tǒng)的操作系統(tǒng)和數(shù)據(jù)庫(kù)都可以屬于不同版本[11]。
1.2.4 數(shù)據(jù)一致性校核
Realsync 強(qiáng)調(diào)數(shù)據(jù)一致性校核,因?yàn)檫@是復(fù)制功能的基石。必須保證源系統(tǒng)和目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù)里的記錄完全相同[12]。
1.2.5 監(jiān)視和告警
RealSync 會(huì)對(duì)數(shù)據(jù)復(fù)制過(guò)程做實(shí)時(shí)監(jiān)視,當(dāng)出現(xiàn)數(shù)據(jù)不一致時(shí)會(huì)及時(shí)告警,以免使源端和目標(biāo)端產(chǎn)生更大的數(shù)據(jù)差異[13-14]。
1.2.6 支持災(zāi)備功能
實(shí)際生產(chǎn)中可能發(fā)生某業(yè)務(wù)系統(tǒng)生產(chǎn)數(shù)據(jù)庫(kù)不能正常使用的情況,RealSync 可將備份(實(shí)時(shí)復(fù)制)數(shù)據(jù)庫(kù)切換成生產(chǎn)數(shù)據(jù)庫(kù),增強(qiáng)業(yè)務(wù)系統(tǒng)應(yīng)對(duì)數(shù)據(jù)庫(kù)風(fēng)險(xiǎn)的能力,這也是企業(yè)保值或增值的有力手段[15]。
貴州電網(wǎng)有限責(zé)任公司人資業(yè)務(wù)應(yīng)用不斷豐富,業(yè)務(wù)量迅速增加,業(yè)務(wù)種類日益復(fù)雜,涉及許多網(wǎng)省同步的業(yè)務(wù)場(chǎng)景,企業(yè)必須加強(qiáng)管理,實(shí)現(xiàn)網(wǎng)省間安全、可靠的人資業(yè)務(wù)數(shù)據(jù)同步。有效管理和共享日益增長(zhǎng)的業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)人力資源管理系統(tǒng)縱向貫通以及數(shù)據(jù)實(shí)時(shí)性同步,并且不影響各業(yè)務(wù)系統(tǒng)的日常應(yīng)用,達(dá)到網(wǎng)、省公司人力資源管理數(shù)據(jù)共享傳輸?shù)哪康摹?/p>
基于上述需求的人力資源管理系統(tǒng)網(wǎng)、省數(shù)據(jù)同步采用DSG RealSync 數(shù)據(jù)同步技術(shù)實(shí)現(xiàn)(見(jiàn)圖3),目前已達(dá)到預(yù)期數(shù)據(jù)同步目標(biāo)。貴州電網(wǎng)有限責(zé)任公司10 個(gè)地市110 家單位的人資業(yè)務(wù)數(shù)據(jù)同步至網(wǎng)公司,網(wǎng)公司再將確定同步的人資數(shù)據(jù)傳輸至貴州側(cè)。這樣,完成了對(duì)RealSync 技術(shù)的深入研究與軟件部署以及對(duì)數(shù)據(jù)庫(kù)的全面配置與調(diào)試,實(shí)現(xiàn)了基于人資系統(tǒng)數(shù)據(jù)庫(kù)日志變化數(shù)據(jù)的實(shí)時(shí)同步、選擇性傳輸。
基于DSG Realsync 的人力資源管理系統(tǒng)網(wǎng)、省數(shù)據(jù)同步性能測(cè)試見(jiàn)表1。根據(jù)實(shí)際業(yè)務(wù)需求,測(cè)試了人力資源管理系統(tǒng)4 種核心場(chǎng)景,在同一并發(fā)用戶數(shù)(100 人)下的數(shù)據(jù)同步性能,測(cè)試結(jié)果主要分為數(shù)據(jù)同步時(shí)間和成功率。測(cè)試結(jié)果滿足測(cè)試目標(biāo),達(dá)到實(shí)際使用要求。
表1 數(shù)據(jù)同步性能測(cè)試結(jié)果
基于DSG Realsync 的人力資源管理系統(tǒng)網(wǎng)、省數(shù)據(jù)同步功能自上線試運(yùn)行以來(lái),一直穩(wěn)定運(yùn)行。從使用情況看,至今運(yùn)行良好、性能穩(wěn)定,各項(xiàng)技術(shù)指標(biāo)在運(yùn)行中均未出現(xiàn)異常,目前軟件運(yùn)行情況能夠滿足正常業(yè)務(wù)使用。
2.2.1 業(yè)務(wù)連續(xù)性的數(shù)據(jù)同步
實(shí)現(xiàn)了在人力資源管理系統(tǒng)業(yè)務(wù)正常運(yùn)轉(zhuǎn)的情況下,將源系統(tǒng)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)復(fù)制到目標(biāo)系統(tǒng)數(shù)據(jù)庫(kù),即初始化的數(shù)據(jù)同步。這里都是自動(dòng)實(shí)現(xiàn),無(wú)須人工操作,簡(jiǎn)化了操作程序,節(jié)省了人工成本。
2.2.2 生產(chǎn)系統(tǒng)“零影響”
實(shí)時(shí)數(shù)據(jù)復(fù)制,對(duì)人力資源管理系統(tǒng)生產(chǎn)數(shù)據(jù)庫(kù)無(wú)任何性能影響,該數(shù)據(jù)復(fù)制技術(shù)不使用數(shù)據(jù)庫(kù)本身的引擎做數(shù)據(jù)變更獲取,而是利用數(shù)據(jù)庫(kù)本身信息得到源系統(tǒng)數(shù)據(jù)庫(kù)的變化,因此可做到對(duì)生產(chǎn)系統(tǒng)“零影響”。
3.1.1 提高企業(yè)信息價(jià)值
實(shí)現(xiàn)了系統(tǒng)間的信息流通和共享,提升了企業(yè)數(shù)據(jù)信息價(jià)值,公司只需根據(jù)業(yè)務(wù)規(guī)則制定信息的獲取或發(fā)布策略,即可輕易實(shí)現(xiàn)信息流轉(zhuǎn)。
3.1.2 提高管理效率
信息共享、異地?cái)?shù)據(jù)同步的實(shí)現(xiàn)使管理者能便捷獲取寶貴的第一手?jǐn)?shù)據(jù)資源,方便任務(wù)下發(fā),更有助于管理層實(shí)現(xiàn)整體決策制定,可有效提升管理效率。
3.1.3 降低人為失誤
實(shí)現(xiàn)了在不中斷系統(tǒng)業(yè)務(wù)運(yùn)行情況下將源數(shù)據(jù)庫(kù)數(shù)據(jù)同步到目標(biāo)系統(tǒng)。該工作無(wú)須人工干預(yù),簡(jiǎn)化了操作步驟,大大降低了人為操作失誤。
3.2.1 降低項(xiàng)目成本
Realsync 支持生產(chǎn)系統(tǒng)和同步系統(tǒng)的異構(gòu)環(huán)境及各種復(fù)制策略,如1:1 單向復(fù)制、一對(duì)多復(fù)制、多對(duì)一復(fù)制等,最大限度支持公司現(xiàn)有系統(tǒng)環(huán)境,降低公司軟硬件成本。同時(shí)采用TCP/IP 等網(wǎng)絡(luò)傳輸數(shù)據(jù),降低了網(wǎng)絡(luò)帶寬要求和成本。
3.2.2 節(jié)約人工成本
異地系統(tǒng)數(shù)據(jù)同步技術(shù)的實(shí)現(xiàn)及應(yīng)用,使源系統(tǒng)及目標(biāo)系統(tǒng)間的業(yè)務(wù)數(shù)據(jù)實(shí)時(shí)交互,系統(tǒng)數(shù)據(jù)下達(dá)及上報(bào)均通過(guò)同步功能完成,節(jié)約了人工成本且不易出現(xiàn)人為失誤,使工作更加高效便捷。
本文闡述了基于DSG Realsync 的異地系統(tǒng)數(shù)據(jù)同步技術(shù),并將其用于解決南方電網(wǎng)公司人力資源管理系統(tǒng)網(wǎng)、省間的數(shù)據(jù)同步需求。實(shí)踐證明,該異地系統(tǒng)數(shù)據(jù)同步技術(shù)可行,實(shí)現(xiàn)了應(yīng)用單位穩(wěn)定、可靠的運(yùn)行和使用。同時(shí)無(wú)須人工干預(yù),簡(jiǎn)化了操作步驟,有效減少業(yè)務(wù)人員工作量,達(dá)到了預(yù)期效果。