專利名稱:一種主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同步方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信技術(shù)領(lǐng)域,特別涉及一種主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同 步方法。
背景技術(shù):
在嵌入式通信設(shè)備中,為了提高系統(tǒng)的可靠性與安全性,往往提供主控 板的主備工作方式,在主備工作方式的系統(tǒng)中,正常情況下, 一個主控板處 于正常的工作狀態(tài)(稱為主機(jī)),而另一個主控板則處于備用狀態(tài)(稱為備 機(jī)),在滿足一定條件的情況下,原來處于備用狀態(tài)的主控板將轉(zhuǎn)為主用狀 態(tài)(這個過程稱為主備倒換),從而保證系統(tǒng)正常穩(wěn)定運(yùn)行。在發(fā)生主備倒 換之前,備機(jī)盡量保持與主機(jī)一致的數(shù)據(jù)和狀態(tài),因此主備機(jī)之間需同步數(shù) 據(jù),數(shù)據(jù)可以分為兩類, 一類與配置有關(guān),稱為靜態(tài)數(shù)據(jù), 一類與業(yè)務(wù)運(yùn)行 有關(guān),稱為動態(tài)數(shù)據(jù)。系統(tǒng)發(fā)生主備倒換有多種原因,如人機(jī)命令倒換、超級終端倒換、硬件按鈕倒換,以及主用主控板掉電、軟件或者硬件異常等,大致可以分為兩類 一類是為了完成特定的功能(如版本升級等)主用主控板主動要求主備倒換, 另 一類是主用主控板發(fā)生軟硬件故障而引起的主備倒換。嵌入式通信系統(tǒng)采用主備工作方式,有助于提高系統(tǒng)的穩(wěn)定性。但在實 際應(yīng)用中,主備控制方法實現(xiàn)較復(fù)雜,主備功能較易發(fā)生故障,而且與主備 功能相關(guān)的故障較難定位和解決,例如主機(jī)將數(shù)據(jù)同步給備機(jī),但備機(jī)由于 啟動較慢,不能正確地接收數(shù)據(jù);又如發(fā)生主備倒換時,備機(jī)并沒有正確地 同步主機(jī)的數(shù)據(jù)與狀態(tài),導(dǎo)致倒換后系統(tǒng)無法正常工作甚至業(yè)務(wù)中斷等等。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是提供一種確保備機(jī)正確獲取主機(jī)的數(shù)據(jù)與狀 態(tài)、確保發(fā)生主備倒換后系統(tǒng)能夠正常工作的主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同 步方法。為解決上述問題,本發(fā)明提供一種以備機(jī)為主導(dǎo)的主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同步方法,包括如下步驟(a) 備機(jī)啟動階段主動向主機(jī)請求同步原始數(shù)據(jù)和狀態(tài);(b) 備機(jī)獲得主機(jī)原始數(shù)據(jù)和狀態(tài)后,定時向主機(jī)請求同步增量數(shù)據(jù) 與狀態(tài),并記錄每次增量同步的執(zhí)行結(jié)果;(c) 網(wǎng)管向主機(jī)發(fā)起主備倒換命令,主機(jī)向備機(jī)發(fā)起主備倒換提示;(d) 備機(jī)收到主備倒換提示后,備機(jī)檢查是否可以執(zhí)行主備倒換,即 備機(jī)是否正確獲取數(shù)據(jù)和狀態(tài),如果是,備機(jī)向主機(jī)發(fā)送同意主備倒換的應(yīng) 答消息,備機(jī)倒換為主機(jī),否則,備機(jī)向主機(jī)發(fā)送拒絕主備倒換的應(yīng)答消息, 主備倒換取消。所述備機(jī)倒換為主機(jī)后檢查本地是否正確獲取數(shù)據(jù)和狀態(tài),如果是,則 繼續(xù)作為主機(jī)工作;否則重啟,從本地裝栽數(shù)據(jù)。所述步驟(d)中主機(jī)如果在規(guī)定時間內(nèi)未收到備機(jī)的應(yīng)答消息,則認(rèn) 為備機(jī)異常,取消主備倒換。所述步驟(a)進(jìn)一步包含如下步驟(al)備機(jī)啟動后,進(jìn)行系統(tǒng)初始化;(a2)備機(jī)向主機(jī)發(fā)送請求,請求主機(jī)向備機(jī)同步原始數(shù)據(jù)和狀態(tài); (a3)備機(jī)啟動定時器T1;(a4)如果在T1溢出之前,備機(jī)接收到主機(jī)同步的原始數(shù)據(jù)和狀態(tài), 則更新備機(jī)的數(shù)據(jù)和狀態(tài)并記錄備機(jī)已獲得原始數(shù)據(jù)和狀態(tài),否則,轉(zhuǎn)入步 驟a2。所述步驟(b)中進(jìn)一步包含如下步驟 (bl)備機(jī)啟動完成,備機(jī)獲得主機(jī)的原始數(shù)據(jù)和狀態(tài); (b2)設(shè)置定時器T2;(b3)T2溢出,備機(jī)向主機(jī)請求同步增量數(shù)據(jù)與狀態(tài),完成增量數(shù)據(jù) 與狀態(tài)的同步;(b4)記錄本次請求的執(zhí)行結(jié)果,如杲備機(jī)正確獲取主機(jī)的增量數(shù)據(jù)與 狀態(tài),則記錄本次請求的執(zhí)行結(jié)果正確,轉(zhuǎn)到步驟(b2);否則記錄本次請 求的執(zhí)行結(jié)果錯誤,轉(zhuǎn)到步驟(b2)。所述備機(jī)是否正確獲取數(shù)據(jù)和狀態(tài)是指備機(jī)是否正確獲取原始數(shù)據(jù)和 狀態(tài),且最近一次增量同步結(jié)果正確。所述備機(jī)正確獲取原始數(shù)據(jù)和狀態(tài)指,如果該備機(jī)的最初始狀態(tài)是主 機(jī),則該備機(jī)正確獲取原始數(shù)據(jù)和狀態(tài)是指最初始的主機(jī)從本地裝載數(shù)據(jù)并 產(chǎn)生狀態(tài),如果該備機(jī)的最初始狀態(tài)是備機(jī),則該備機(jī)正確獲取原始數(shù)據(jù)和 狀態(tài)是指最初始的備機(jī)從最初始的主機(jī)同步過原始數(shù)據(jù)和狀態(tài)。本發(fā)明提供的主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同步方法,以備機(jī)為主導(dǎo),且 采取增量同步,簡化了主備同步方法,確保了主備之間保持?jǐn)?shù)據(jù)與狀態(tài)一致, 主備倒換后系統(tǒng)能夠正常工作。
圖1是本發(fā)明實施例備機(jī)啟動階段主動向主機(jī)請求同步原始數(shù)據(jù)和狀 態(tài)流程圖;圖2是本發(fā)明實施例備機(jī)啟動完成后定時向主機(jī)請求同步增量數(shù)據(jù)與 狀態(tài)流程圖;圖3是本發(fā)明實施例主備倒換主機(jī)征求備機(jī)意見的流程圖; 圖4是本發(fā)明實施例備機(jī)倒換為主機(jī)后的檢查工作流程圖。
具體實施方式
本發(fā)明提出的以備機(jī)為主導(dǎo)的主備控制方法主要包含下述各步驟。1、備機(jī)啟動階段主動向主機(jī)請求同步原始數(shù)據(jù)和狀態(tài)。在原始數(shù)據(jù)同 步階段,以主機(jī)為主導(dǎo)的同步機(jī)制中,主機(jī)需判斷備機(jī)是否正常,如果備機(jī) 正常才將數(shù)據(jù)和狀態(tài)同步給備機(jī),為了提高同步的可靠性,還需提供重發(fā)機(jī) 制和確認(rèn)機(jī)制,主機(jī)實現(xiàn)復(fù)雜,主備機(jī)配合也較復(fù)雜。而以備機(jī)為主導(dǎo)的同步機(jī)制中,該階段的數(shù)據(jù)同步可以用圖1來描述,具體過程可以描述為 101:備才幾啟動后,系統(tǒng)初始化;102:備機(jī)向主機(jī)發(fā)送請求,請求主機(jī)向備機(jī)同步原始數(shù)據(jù)和狀態(tài),103:備機(jī)啟動定時器T1,定時器T1的時長根據(jù)具體系統(tǒng)確定, 一般 應(yīng)大于主機(jī)收集數(shù)據(jù)時間和數(shù)據(jù)在主備機(jī)之間傳輸時間的總和;104:如果在T1溢出之前,備機(jī)接收到主機(jī)同步的原始數(shù)據(jù)和狀態(tài),則 轉(zhuǎn)入步驟105;否則,轉(zhuǎn)入步驟102;105:更新備機(jī)的數(shù)據(jù)和狀態(tài),關(guān)閉T1,并記錄標(biāo)記,表示已同步原始 數(shù)據(jù)和狀態(tài)。與以主機(jī)為主導(dǎo)的同步才兒制不同,在以備機(jī)為主導(dǎo)的同步機(jī)制中,主機(jī) 無需判斷備機(jī)的狀態(tài),備機(jī)也無需判斷主機(jī)的狀態(tài),備機(jī)啟動初始化完成后 即向主機(jī)發(fā)起請求同步數(shù)據(jù),為了提高可靠性僅需重發(fā)機(jī)制,而無需確認(rèn)機(jī) 制,主備配合較簡單。2、備機(jī)啟動完成后定時向主機(jī)請求同步增量數(shù)據(jù)與狀態(tài)。系統(tǒng)正常工 作后,業(yè)務(wù)開始運(yùn)行,此時會產(chǎn)生大量的動態(tài)數(shù)據(jù),如用戶、線路的狀態(tài)等, 這些動態(tài)數(shù)據(jù)都需同步到備機(jī),在業(yè)務(wù)量大的情況下將導(dǎo)致主備機(jī)非常繁 忙。以備機(jī)為主導(dǎo)的定時同步方法根據(jù)動態(tài)數(shù)據(jù)隨時變化更新的特點,采用 定時同步,避免動態(tài)數(shù)據(jù)每發(fā)生一次變化就同步一次,減少同步的數(shù)據(jù)量, 而且每次同步的結(jié)果可以作為備機(jī)是否同意主備倒換的依據(jù),如圖2所述, 具體過程可以描述為201:備機(jī)啟動完成或者主機(jī)轉(zhuǎn)為備機(jī)完成,其中備機(jī)啟動完成包括已 經(jīng)從主機(jī)同步原始數(shù)據(jù)和狀態(tài);202:設(shè)置定時器T2,定時器T2的時長根據(jù)具體系統(tǒng)確定,對同步實 時性要求較高的系統(tǒng),T2時長可以短一些,對同步實時性要求較低的系統(tǒng), T2時長可以長一些;203: T2溢出,備機(jī)向主機(jī)請求同步增量數(shù)據(jù)與狀態(tài),完成增量數(shù)據(jù)與 狀態(tài)的同步過程;204:記錄本次請求的執(zhí)行結(jié)果,如果備機(jī)正確獲取主機(jī)的增量數(shù)據(jù)與 狀態(tài),則記錄本次請求的執(zhí)行結(jié)果正確,轉(zhuǎn)到步驟202;否則記錄本次請求 的執(zhí)行結(jié)果錯誤,轉(zhuǎn)到步驟202。以備機(jī)為主導(dǎo)的定時同步機(jī)制,可以減少主機(jī)的策略工作,主機(jī)只要根 據(jù)備機(jī)的請求發(fā)送數(shù)據(jù)和狀態(tài)即可。另外在系統(tǒng)的正常運(yùn)行中,改變配置的 頻率較小,因改變配置而引起的靜態(tài)數(shù)據(jù)同步對系統(tǒng)造成的負(fù)擔(dān)也較小。3、主備倒換主機(jī)征求備機(jī)的意見。在主機(jī)主動發(fā)起的主備倒換過程中, 如果主機(jī)不征求備機(jī)的意見而強(qiáng)行倒換,則有可能備機(jī)未準(zhǔn)備好甚至備機(jī)根 本無法倒換成為主機(jī),系統(tǒng)將無法正常工作。主機(jī)征求備才幾主備倒換的過程 可以用圖3來描述,具體過程可以描述為301:網(wǎng)管向主才幾發(fā)起主備倒換命令;302:主機(jī)向備機(jī)發(fā)起主備倒換提示;303:備機(jī)收到主備倒換提示后,檢查是否可以執(zhí)行主備倒換,可以主 備倒換的條件為正確獲取原始數(shù)據(jù)和狀態(tài),并且最近一次請求增量同步數(shù) 據(jù)和狀態(tài)執(zhí)行結(jié)果正確。備機(jī)正確獲取原始數(shù)據(jù)和狀態(tài)的含義是,如果該備 機(jī)的最初始狀態(tài)是主機(jī)并經(jīng)過奇數(shù)次主備倒換后轉(zhuǎn)為備機(jī),則該備機(jī)正確獲 取原始數(shù)據(jù)和狀態(tài)是指最初始的主機(jī)從本地裝栽數(shù)據(jù)并產(chǎn)生狀態(tài),如果該備 機(jī)的最初始狀態(tài)是備4幾并經(jīng)過偶數(shù)次主備倒換仍然為備機(jī),則該備機(jī)正確獲 取原始數(shù)據(jù)和狀態(tài)是指最初始的備機(jī)從最初始的主機(jī)同步過原始數(shù)據(jù)和狀 態(tài)。如果滿足主備倒換條件,執(zhí)行步驟304;否則執(zhí)行步驟305;304:備機(jī)向主機(jī)發(fā)送同意主備倒換的消息,主機(jī)執(zhí)行主備倒換,結(jié)束。305:備機(jī)向主機(jī)發(fā)送拒絕主備倒換的消息,主機(jī)放棄主備倒換,結(jié)束。在以備機(jī)為主導(dǎo)的主備機(jī)制中,主機(jī)主動發(fā)起的主備倒換,主機(jī)需征求 備機(jī)的意見,備機(jī)如果未準(zhǔn)備好將拒絕主備倒換,而主機(jī)可以設(shè)置超時,如
果在規(guī)定時間內(nèi)未收到備機(jī)的應(yīng)答,則認(rèn)為備機(jī)異常,取消主備倒換。4、備機(jī)倒換為主機(jī)后的檢查工作。在主機(jī)發(fā)生異常的情況下,備機(jī)將 無條件倒換為主機(jī),這種情況下,新主機(jī)可能因數(shù)據(jù)或者狀態(tài)不正確而無法 正常工作。因此只要備機(jī)倒換為主機(jī)后就做檢查工作,以保證系統(tǒng)能正常工 作,用圖4描述,具體過程為401:主機(jī)發(fā)生異常、拔出、復(fù)位或者主動倒換;402:備機(jī)倒換為主才幾;403:倒換后的新主機(jī)檢查本地是否正確獲取原始數(shù)據(jù)和狀態(tài)以及最近 一次請求增量同步數(shù)據(jù)和狀態(tài)執(zhí)行結(jié)果是否正確,倒換后的新主機(jī)正確獲取 原始數(shù)據(jù)和狀態(tài)的含義是,如果該新主機(jī)的最初始狀態(tài)是主機(jī),則該新主機(jī) 正確獲取原始數(shù)據(jù)和狀態(tài)是指最初始的主機(jī)從本地裝載數(shù)據(jù)并產(chǎn)生狀態(tài),如 果該新主機(jī)的最初始狀態(tài)是備機(jī),則該新主機(jī)正確獲取原始數(shù)據(jù)和狀態(tài)是指 最初始的備機(jī)從最初始的主機(jī)同步過原始數(shù)據(jù)和狀態(tài)。如果倒換后的新主機(jī) 正確獲取原始數(shù)據(jù)和狀態(tài)并且最近一次請求增量同步數(shù)據(jù)和狀態(tài)執(zhí)行結(jié)果 正確,轉(zhuǎn)入步驟404;否則轉(zhuǎn)入步驟405;404:倒換后的新主機(jī)繼續(xù)作為主機(jī)工作,結(jié)束。405:倒換后的新主機(jī)重啟;406:倒換后的新主機(jī)從本地裝載數(shù)據(jù),結(jié)束。備機(jī)倒換為主機(jī)后做檢查工作,可以盡量繼承原來主機(jī)的數(shù)據(jù)和狀態(tài)工 作,而在發(fā)生異常的情況下可以從本地狀態(tài)數(shù)據(jù)重新工作,從而盡量縮短業(yè) 務(wù)中斷的時間。本實施例無論是否正常倒換都做檢查,即執(zhí)行了步驟3之后 還執(zhí)行步驟4中的檢查,但在另一實施例中,備機(jī)可以記錄下倒換的原因, 在主機(jī)向備機(jī)發(fā)起的主動倒換完成后,不再進(jìn)行上述檢查。
權(quán)利要求
1、一種主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同步方法,其特征在于包含以下步驟(a)備機(jī)啟動階段主動向主機(jī)請求同步原始數(shù)據(jù)和狀態(tài);(b)備機(jī)獲得主機(jī)原始數(shù)據(jù)和狀態(tài)后,定時向主機(jī)請求同步增量數(shù)據(jù)與狀態(tài),并記錄每次增量同步的執(zhí)行結(jié)果;(c)網(wǎng)管向主機(jī)發(fā)起主備倒換命令,主機(jī)向備機(jī)發(fā)起主備倒換提示;(d)備機(jī)收到主備倒換提示后,備機(jī)檢查是否可以執(zhí)行主備倒換,即備機(jī)是否正確獲取數(shù)據(jù)和狀態(tài),如果是,備機(jī)向主機(jī)發(fā)送同意主備倒換的應(yīng)答消息,備機(jī)倒換為主機(jī),否則,備機(jī)向主機(jī)發(fā)送拒絕主備倒換的應(yīng)答消息,主備倒換取消。
2、 如權(quán)利要求1所述的方法,其特征在于所述備機(jī)倒換為主機(jī)后檢 查本地是否正確獲取數(shù)據(jù)和狀態(tài),如果是,則繼續(xù)作為主機(jī)工作;否則重啟, 從本地裝栽數(shù)據(jù)。
3、 如權(quán)利要求l所述的方法,其特征在于所述步驟(d)中主機(jī)如果 在規(guī)定時間內(nèi)未收到備機(jī)的應(yīng)答消息,則認(rèn)為備機(jī)異常,取消主備倒換。
4、 如權(quán)利要求l所述的方法,其特征在于所述步驟(a)進(jìn)一步包含 如下步驟(al)備機(jī)啟動后,進(jìn)行系統(tǒng)初始化;(a2)備機(jī)向主機(jī)發(fā)送請求,請求主機(jī)向備機(jī)同步原始數(shù)據(jù)和狀態(tài); (a3)備機(jī)啟動定時器T1;(a4)如果在T1溢出之前,備機(jī)接收到主機(jī)同步的原始數(shù)據(jù)和狀態(tài), 則更新備機(jī)的數(shù)據(jù)和狀態(tài)并記錄備機(jī)已獲得原始數(shù)據(jù)和狀態(tài),否則,轉(zhuǎn)入步 驟a2。
5、 如權(quán)利要求l所述的方法,其特征在于所述步驟(b)中進(jìn)一步包 含如下步驟(bl)備機(jī)啟動完成,備機(jī)獲得主機(jī)的原始數(shù)據(jù)和狀態(tài); (b2)設(shè)置定時器T2;(b3) T2溢出,備機(jī)向主機(jī)請求同步增量數(shù)據(jù)與狀態(tài),完成增量數(shù)據(jù) 與狀態(tài)的同步;(b4)記錄本次請求的執(zhí)行結(jié)果,如杲備機(jī)正確獲取主機(jī)的增量數(shù)據(jù)與 狀態(tài),則記錄本次請求的執(zhí)行結(jié)果正確,轉(zhuǎn)到步驟(b2);否則記錄本次請 求的執(zhí)行結(jié)果錯誤,轉(zhuǎn)到步驟(b2)。
6、 如權(quán)利要求1或2所述的方法,其特征在于所述備機(jī)是否正確獲 取數(shù)據(jù)和狀態(tài)是指備機(jī)是否正確獲取原始數(shù)據(jù)和狀態(tài),且最近一次增量同步 結(jié)果正確。
7、 如權(quán)利要求6所述的方法,其特征在于所述備機(jī)正確獲取原始數(shù) 據(jù)和狀態(tài)指,如果該備機(jī)的最初始狀態(tài)是主機(jī),則該備機(jī)正確獲取原始數(shù)據(jù) 和狀態(tài)是指最初始的主機(jī)從本地裝栽數(shù)據(jù)并產(chǎn)生狀態(tài),如果該備機(jī)的最初始 狀態(tài)是備機(jī),則該備機(jī)正確獲取原始數(shù)據(jù)和狀態(tài)是指最初始的備機(jī)從最初始 的主機(jī)同步過原始數(shù)據(jù)和狀態(tài)。
全文摘要
本發(fā)明提供一種主機(jī)與備機(jī)間的數(shù)據(jù)和狀態(tài)同步方法,包括如下步驟(a)備機(jī)啟動階段主動向主機(jī)請求同步原始數(shù)據(jù)和狀態(tài);(b)備機(jī)獲得主機(jī)原始數(shù)據(jù)和狀態(tài)后,定時向主機(jī)請求同步增量數(shù)據(jù)與狀態(tài),并記錄每次增量同步的執(zhí)行結(jié)果;(c)網(wǎng)管向主機(jī)發(fā)起主備倒換命令,主機(jī)向備機(jī)發(fā)起主備倒換提示;(d)備機(jī)收到主備倒換提示后,備機(jī)檢查是否可以執(zhí)行主備倒換,即備機(jī)是否正確獲取數(shù)據(jù)和狀態(tài),如果是,備機(jī)向主機(jī)發(fā)送同意主備倒換的應(yīng)答消息,備機(jī)倒換為主機(jī),否則,備機(jī)向主機(jī)發(fā)送拒絕主備倒換的應(yīng)答消息,主備倒換取消。
文檔編號H04L1/22GK101155015SQ20061014100
公開日2008年4月2日 申請日期2006年9月28日 優(yōu)先權(quán)日2006年9月28日
發(fā)明者張偉良, 輝 鄧 申請人:中興通訊股份有限公司