本發(fā)明提供了一種數(shù)據(jù)庫一致性校驗方法,尤其是一種配電自動化跨區(qū)數(shù)據(jù)庫一致性校驗方法。
背景技術(shù):
在某些對系統(tǒng)、數(shù)據(jù)安全性要求較高的領(lǐng)域,如電網(wǎng)領(lǐng)域,需要按照電網(wǎng)生產(chǎn)影響的緊要程度對網(wǎng)絡(luò)進(jìn)行分區(qū),同時實現(xiàn)各個分區(qū)間的物理隔離,保障信息通信安全。但實際情況下,兩個或以上的分區(qū)網(wǎng)絡(luò)需要對某些數(shù)據(jù)進(jìn)行共享的需求十分明顯,例如,配電調(diào)度自動化系統(tǒng)的數(shù)據(jù)庫建立在Ⅰ區(qū),而電網(wǎng)生產(chǎn)管理信息系統(tǒng)建立在Ⅲ區(qū),如果在Ⅲ區(qū)配網(wǎng)停電搶修業(yè)務(wù)需要了解Ⅰ區(qū)配電自動化系統(tǒng)中的配網(wǎng)故障情況,那么就需要在Ⅲ區(qū)有個實時鏡像庫保持與Ⅰ區(qū)配電調(diào)度自動化系統(tǒng)數(shù)據(jù)庫保持一致。為此,在Ⅰ區(qū)建立了主數(shù)據(jù)庫,Ⅲ區(qū)建立了鏡像庫,將Ⅰ區(qū)數(shù)據(jù)庫變化如執(zhí)行的SQL語句腳本文件通過網(wǎng)絡(luò)隔離裝置傳送到Ⅲ區(qū),Ⅲ區(qū)數(shù)據(jù)庫根據(jù)傳送來的SQL語句腳本文件,同步更新Ⅲ區(qū)鏡像數(shù)據(jù)庫,從而保證Ⅰ、Ⅲ區(qū)數(shù)據(jù)庫在網(wǎng)絡(luò)隔離狀態(tài)下的數(shù)據(jù)一致。但在實際運行維護(hù)中,經(jīng)常由于網(wǎng)絡(luò)通道丟包、數(shù)據(jù)處理負(fù)載等原因造成同步Ⅰ區(qū)傳送命令丟失、未執(zhí)行或延遲等,造成Ⅰ、Ⅲ區(qū)數(shù)據(jù)庫不一致現(xiàn)象。這些異常通過人工都難以及時發(fā)現(xiàn),往往給Ⅲ區(qū)中的電網(wǎng)信息管理工作造成困擾后,才發(fā)現(xiàn)問題。因此,如何快速檢測電網(wǎng)分區(qū)同步數(shù)據(jù)庫數(shù)據(jù)的一致性,是目前困擾調(diào)度信息維護(hù)人員的一項主要問題。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是現(xiàn)有的電網(wǎng)分區(qū)同步數(shù)據(jù)庫缺乏有效的數(shù)據(jù)一致性校驗方法,導(dǎo)致調(diào)度信息維護(hù)人員工作效率低下。
為了解決上述技術(shù)問題,本發(fā)明提供了一種配電自動化跨區(qū)數(shù)據(jù)庫一致性校驗方法,包括如下步驟:
步驟1,在鏡像數(shù)據(jù)庫所在網(wǎng)絡(luò)中建立自動觀察窗口,自動觀察窗口用于將數(shù)據(jù)劃分為靜態(tài)數(shù)據(jù)、動態(tài)增量數(shù)據(jù)以及動態(tài)更新數(shù)據(jù)這三種管理類型,并按照用戶對需要檢測一致性數(shù)據(jù)的特性和檢測需求將主數(shù)據(jù)庫組成的數(shù)據(jù)對象推送到三種管理類型相對應(yīng)的檢測窗口中;
步驟2,檢測窗口對推送到窗口的數(shù)據(jù)對象進(jìn)行一致性校驗,具體為:
檢測窗口在對靜態(tài)數(shù)據(jù)的一致性進(jìn)行校驗時,首先將主數(shù)據(jù)庫和鏡像數(shù)據(jù)庫中的被用戶羅列在自動觀察窗口中的數(shù)據(jù)表結(jié)構(gòu)和數(shù)據(jù)存儲到XML文件中,其中,主數(shù)據(jù)庫生成文件通過物理隔離裝置從主數(shù)據(jù)庫所在區(qū)域傳送到鏡像數(shù)據(jù)庫所在網(wǎng)絡(luò)區(qū)域,通過主數(shù)據(jù)庫和鏡像數(shù)據(jù)庫雙方文件大小的比較來檢驗靜態(tài)數(shù)據(jù)的一致性;
檢測窗口在對動態(tài)增量數(shù)據(jù)的一致性進(jìn)行校驗時,分為兩種情況,一種帶有時標(biāo)的動態(tài)增量數(shù)據(jù),另一種則不帶有時標(biāo),對于帶有時標(biāo)的動態(tài)增量數(shù)據(jù)一致性檢查,首先鏡像數(shù)據(jù)庫需要延遲一個時間空隙,查詢出上一次檢測至當(dāng)前時間內(nèi)的總記錄數(shù)據(jù),通過總記錄數(shù)據(jù)是否一致來直接進(jìn)行一致性判定,對于不帶有時標(biāo)的動態(tài)增量數(shù)據(jù),則將整體數(shù)據(jù)中任一主鍵或索引字段倒序排列,以主數(shù)據(jù)庫文件為準(zhǔn),通過主數(shù)據(jù)庫和鏡像數(shù)據(jù)庫中該數(shù)據(jù)對象記錄數(shù)是否一致進(jìn)行一致性判定;
檢測窗口在對動態(tài)更新數(shù)據(jù)的一致性進(jìn)行校驗時,需要將整體數(shù)據(jù)按照索引或主鍵字段排序后,切分成若干區(qū)域,利用分布式計算方式,通過多個計算機(jī)進(jìn)程對不同區(qū)域進(jìn)行詳細(xì)比較,從而實現(xiàn)對動態(tài)更新數(shù)據(jù)的一致性進(jìn)行校驗。
采用將數(shù)據(jù)劃分為靜態(tài)數(shù)據(jù)、動態(tài)增量數(shù)據(jù)以及動態(tài)更新數(shù)據(jù)這三種管理類型,從而有針對性地進(jìn)行數(shù)據(jù)一致性校驗,不僅具有較好的校驗效率,而且可適應(yīng)性采用專用方法進(jìn)行校驗,提高了校驗的可靠性;采用切分成若干區(qū)域?qū)討B(tài)更新數(shù)據(jù)的一致性進(jìn)行校驗,將大大提高數(shù)據(jù)一致性問題發(fā)掘的效率。
作為本發(fā)明的進(jìn)一步限定方案,步驟2中,在各個檢測窗口對三種管理類型的數(shù)據(jù)對象進(jìn)行一致性校驗前,各個檢測窗口需要為推送到窗口中的數(shù)據(jù)對象設(shè)定優(yōu)先權(quán)值,同時記錄每個檢測周期發(fā)現(xiàn)問題的數(shù)據(jù)對象。利用設(shè)定優(yōu)先權(quán)值來對校驗數(shù)據(jù)的先后順序進(jìn)行限定,不僅使數(shù)據(jù)校驗有序進(jìn)行,而且使得校驗工作的效率也較高。
作為本發(fā)明的進(jìn)一步限定方案,步驟2中,自動觀察窗口根據(jù)不一致次數(shù)*權(quán)值/檢查次數(shù)的方式計算優(yōu)先權(quán)值,優(yōu)先權(quán)值高的數(shù)據(jù)對象將自動排在優(yōu)先的順序進(jìn)行檢測。
作為本發(fā)明的進(jìn)一步限定方案,步驟1中,靜態(tài)數(shù)據(jù)是指對數(shù)據(jù)不一致性檢查周期較長或相對檢查周期基本沒有多大變化的數(shù)據(jù),動態(tài)增量數(shù)據(jù)是指數(shù)據(jù)呈現(xiàn)單一增長變化沒有更新的數(shù)據(jù),動態(tài)更新數(shù)據(jù)是指數(shù)據(jù)內(nèi)容存在有增有減或內(nèi)容更新的數(shù)據(jù)。
作為本發(fā)明的進(jìn)一步限定方案,步驟2中,時間空隙為系統(tǒng)要求的傳輸延遲。
本發(fā)明的有益效果在于:(1)采用將數(shù)據(jù)劃分為靜態(tài)數(shù)據(jù)、動態(tài)增量數(shù)據(jù)以及動態(tài)更新數(shù)據(jù)這三種管理類型,從而有針對性地進(jìn)行數(shù)據(jù)一致性校驗,不僅具有較好的校驗效率,而且可適應(yīng)性采用專用方法進(jìn)行校驗,提高了校驗的可靠性;(2)采用切分成若干區(qū)域?qū)討B(tài)更新數(shù)據(jù)的一致性進(jìn)行校驗,將大大提高數(shù)據(jù)一致性問題發(fā)掘的效率;(3)對主流數(shù)據(jù)庫產(chǎn)品沒有特殊要求,實現(xiàn)數(shù)據(jù)一致性判定的方法也無需在數(shù)據(jù)庫層增加更多的底層細(xì)節(jié),可以方便靈活的實現(xiàn)客戶對不同分區(qū)數(shù)據(jù)庫的快速檢測。
附圖說明
圖1為本發(fā)明實現(xiàn)方法的具體實施流程圖。
具體實施方式
下面結(jié)合附圖和實例對本發(fā)明作進(jìn)一步的說明。
如圖1所示,本發(fā)明提供了一種配電自動化跨區(qū)數(shù)據(jù)庫一致性校驗方法,包括以下步驟:
A、用戶維護(hù)自動觀察窗口數(shù)據(jù)對象
用戶在數(shù)據(jù)自動觀察窗口維護(hù)主、鏡像數(shù)據(jù)庫中需要檢查的靜態(tài)的或者動態(tài)數(shù)據(jù)對象。
B、啟動數(shù)據(jù)觀察窗口工作
完成維護(hù)后,通過按鈕啟動數(shù)據(jù)自動觀察工作。
C、根據(jù)發(fā)現(xiàn)問題頻率和權(quán)值計算優(yōu)先級并排列數(shù)據(jù)對象
檢測窗口將根據(jù)當(dāng)前對象發(fā)現(xiàn)不一致性歷史累積次數(shù)占總檢查次數(shù)的百分比乘以用戶設(shè)定權(quán)值進(jìn)行優(yōu)先級排序。
D、讀取一個數(shù)據(jù)對象
讀取優(yōu)先級排序形成的數(shù)據(jù)對象列表中的最靠前數(shù)據(jù)對象。
E、判定數(shù)據(jù)觀察窗口數(shù)據(jù)類型
判定該數(shù)據(jù)對象所在的窗口類型,如果是靜態(tài)數(shù)據(jù)則轉(zhuǎn)入步驟F,如果是動態(tài)增量數(shù)據(jù)則轉(zhuǎn)入步驟J,如果是動態(tài)更新數(shù)據(jù)則轉(zhuǎn)入步驟P。
F、生成主、鏡像數(shù)據(jù)庫靜態(tài)數(shù)據(jù)XML文件
主、鏡像數(shù)據(jù)庫網(wǎng)絡(luò)區(qū)域中各自生成該靜態(tài)數(shù)據(jù)對象的XML文件。
G、將主數(shù)據(jù)庫靜態(tài)數(shù)據(jù)文件傳送到鏡像數(shù)據(jù)庫分區(qū)
將主數(shù)據(jù)庫靜態(tài)文件傳送到鏡像數(shù)據(jù)庫分區(qū)中。
H、比較文件大小是否一致
檢測窗口對傳送來的主數(shù)據(jù)庫靜態(tài)數(shù)據(jù)XML文件與鏡像數(shù)據(jù)庫的XML文件進(jìn)行文件大小比較,看是否一致,如果一致,轉(zhuǎn)入步驟I,如果不一致,轉(zhuǎn)入步驟O。
I、是否存在下一個數(shù)據(jù)對象
判斷自動觀察窗口中是否還存在本輪檢查尚未執(zhí)行的數(shù)據(jù)對象,如果存在,轉(zhuǎn)入步驟D,如果不存在,結(jié)束本次自動觀察任務(wù)流程,等待下一個時間間隔的檢查。
J、推遲一個時間空隙,并記錄下當(dāng)前時間
首先鏡像數(shù)據(jù)庫所在網(wǎng)絡(luò)分區(qū)中的數(shù)據(jù)觀察窗口記錄下當(dāng)前時間,并將上次檢查成功的時間及記錄下的當(dāng)前時間形成臨時文件,通過隔離裝置發(fā)送到主數(shù)據(jù)庫網(wǎng)絡(luò)分區(qū)中。
K、判定數(shù)據(jù)對象是否帶有時標(biāo)
判斷該動態(tài)增量數(shù)據(jù)對象是否是帶有時標(biāo)的,如果帶有時標(biāo),則轉(zhuǎn)入步驟L,如果不帶有時標(biāo),則轉(zhuǎn)入步驟N。
L、按時標(biāo)倒序查詢出上一次檢測至記錄下的當(dāng)前時間內(nèi)的數(shù)據(jù)
主數(shù)據(jù)庫接收到文件后,執(zhí)行文件中定義的起止時間段時標(biāo)范圍的數(shù)據(jù)查詢,返回結(jié)果記錄數(shù)。
M、比較記錄數(shù)是否一致
鏡像數(shù)據(jù)庫區(qū)也按照同樣條件查詢出結(jié)果數(shù),通過主數(shù)據(jù)庫與鏡像數(shù)據(jù)庫查詢的結(jié)果條數(shù)進(jìn)行比較,判斷結(jié)果數(shù)是否一致,一致則轉(zhuǎn)入步驟I,不一致則轉(zhuǎn)入步驟P。
N、按照某個主鍵或索引字段倒序排列
針對不帶時標(biāo)的動態(tài)更新數(shù)據(jù),按照主鍵或者索引字段的倒序排列,形成記錄數(shù)文件通過隔離裝置從主數(shù)據(jù)庫區(qū)域傳送到鏡像數(shù)據(jù)庫區(qū)域,轉(zhuǎn)入步驟M判斷。
O、標(biāo)注該數(shù)據(jù)對象存在不一致現(xiàn)象
標(biāo)注分析出不一致數(shù)據(jù)對象,并記錄到告警日志中,通過郵件或短信形式告知用戶。
P、按照用戶定義的條件優(yōu)選排列查詢并切分?jǐn)?shù)據(jù)
針對動態(tài)更新數(shù)據(jù),只能按照主鍵或索引倒序排列條件逐個區(qū)域范圍進(jìn)行查詢,例如5千條一個單位對數(shù)據(jù)10萬進(jìn)行檢查,若隊列太多,可通過多進(jìn)程或分布式計算方式。由于動態(tài)更新數(shù)據(jù),按照用戶維護(hù)數(shù)據(jù)的工作習(xí)慣,通常集中在一個段或某個與日常工作相關(guān)的條件范圍內(nèi),因此,在自動觀察窗口通過設(shè)定額外條件,將查詢結(jié)果集以文件形式從主數(shù)據(jù)庫網(wǎng)絡(luò)分區(qū)傳送到鏡像數(shù)據(jù)庫網(wǎng)絡(luò)分區(qū)中再進(jìn)行切分將大大提高數(shù)據(jù)一致性問題發(fā)掘的效率。
R、數(shù)據(jù)區(qū)是否存在變化
對照結(jié)果集文件逐項比較是否存在變化,如果存在則轉(zhuǎn)入步驟O,如果不存在則轉(zhuǎn)入步驟I。
以上內(nèi)容是結(jié)合具體實施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實施只局限于這些說明。本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實現(xiàn)。