專利名稱:通信系統(tǒng)中主備板數(shù)據(jù)實時同步的方法
技術領域:
本發(fā)明涉及通信系統(tǒng)中數(shù)據(jù)庫數(shù)據(jù)更新,尤其是系統(tǒng)采用熱備份時,主板和備板數(shù)據(jù)庫中的數(shù)據(jù)實時同步的方法。
現(xiàn)有運行在備份單板中數(shù)據(jù)更新的方法是直接同步,即在主板數(shù)據(jù)發(fā)生改變時直接發(fā)送到備板,備板收到數(shù)據(jù)后通知主板操作是否成功,如果失敗則重復發(fā)送數(shù)據(jù),直到成功為止。這種方案的缺點是數(shù)據(jù)發(fā)送量小,每次只能發(fā)送1條記錄,如果主板數(shù)據(jù)被覆蓋,那么原來的修改就丟失,無法同步到備板,因此,這種方法需要完善。
本發(fā)明提出的解決方案包括(1)在主、備板中各設置一數(shù)據(jù)緩沖區(qū);
(2)當主板數(shù)據(jù)修改時,向其緩沖區(qū)中寫入主板修改過的數(shù)據(jù);(3)緩沖區(qū)對數(shù)據(jù)進行處理;(4)當緩沖區(qū)數(shù)據(jù)量達到一定時,主板實時同步進程從緩沖區(qū)中讀數(shù)據(jù)并發(fā)送到備板實時同步進程;(5)更新備板數(shù)據(jù)庫,并將操作結果返回給主板;(6)如果操作結果是同步成功,則刪除緩沖區(qū)中相應的數(shù)據(jù),否則重新發(fā)送數(shù)據(jù);(7)循環(huán)執(zhí)行(2)-(6),直至緩沖區(qū)中的數(shù)據(jù)記錄為空。
如上所述的方法中,如果系統(tǒng)發(fā)生主備同步、前后臺同步或主備倒換時,停止執(zhí)行步驟(3)-(7),直至主板接收到相關操作結束的消息。
如上所述的方法,步驟(1)所述的緩沖區(qū)分為數(shù)據(jù)區(qū)和標志區(qū),數(shù)據(jù)區(qū)用于存儲修改的記錄,標志區(qū)用于存儲被修改記錄的類型,包括插入、刪除等。
如上所述的方法,步驟(3)包括如果主板修改的數(shù)據(jù)是針對同一行號的記錄,則系統(tǒng)按照一定的規(guī)則在緩沖區(qū)中將這些修改進行逐一處理,并在緩沖區(qū)保留最后得到的數(shù)據(jù)。
采用本發(fā)明所述方法實現(xiàn)主備板間的實時同步后,與原有系統(tǒng)相比,主備倒換的時間大大減少,100000個用戶主備倒換的時間從原來的22秒降低到10秒,倒換時掉話率從原來8%降低到4%,提高了系統(tǒng)的穩(wěn)定性,保障更高的通話質量。
首先,在主板和備板上電后,在主、備板上各設置一個緩沖區(qū),設置緩沖區(qū)的目的有兩點一是在主、備板鏈路不通時存放主板收集的數(shù)據(jù),另一是為同步不成功的記錄提供回溯機制。在本發(fā)明的實時同步過程中,雖然主、備板上都設置了緩沖區(qū),但只有處在主板工作位置的單板的緩沖區(qū)才進行工作,這樣處理的目的是減少倒換的時間,因為如果在系統(tǒng)發(fā)生主備倒換時才分配備板緩沖區(qū),就會增加倒換的時間,還有可能造成數(shù)據(jù)的丟失。此外,為了減少建立緩沖區(qū)帶來的內存消耗,緩沖區(qū)分為數(shù)據(jù)區(qū)和標志區(qū)兩部分,前者用于填寫記錄的行號和主關鍵字,后者用于填寫對記錄的操作。相同行號的記錄在數(shù)據(jù)區(qū)中只有1條,對記錄的修改,如刪除、插入等,填寫在標志區(qū)中。
需要同步的數(shù)據(jù)首先被放入緩沖區(qū)中,當緩沖區(qū)中的數(shù)據(jù)較多時才被打包發(fā)送,這樣可以使數(shù)據(jù)發(fā)送量較小,不會占用太多的內存。數(shù)據(jù)在發(fā)送后仍然保存在緩沖區(qū)中,直到備板發(fā)回同步成功應答才刪除,解決了數(shù)據(jù)重復發(fā)送的問題。同時,為了使主板在最短時間內將變化過的數(shù)據(jù)同步到備板,本發(fā)明還使用實時同步進程讀寫緩沖區(qū),該進程不停檢查緩沖區(qū)的數(shù)據(jù)多少并打包發(fā)送,直到緩沖區(qū)為空。如果系統(tǒng)發(fā)生主備同步、前后臺同步或主備倒換,將會停止實時同步,直至主板接收到上述進程結束的消息。
下面以實時同步過程中發(fā)生前后臺同步為例,說明本方法1、主板數(shù)據(jù)庫變化時向緩沖區(qū)寫數(shù)據(jù)。
2、緩沖區(qū)對數(shù)據(jù)進行處理,假設主板數(shù)據(jù)庫中要刪除關鍵字是A的1條記錄,行號是10,然后插入關鍵字是B的1條記錄,正好也是插入到第10行,則進行以下處理將被刪除記錄的關鍵字和行號寫入緩沖數(shù)據(jù)區(qū)的關鍵字域中,同時在標志區(qū)的第10個元素處置標記“刪除”;然后查找緩沖區(qū),找到存在行號為10的記錄,在標志區(qū)的第10個元素處修改標記為“刪除”“插入”。
3、當緩沖區(qū)中的記錄累計到一定數(shù)量時,實時同步進程進行打包發(fā)送到備板,等待備板返回消息。
4、當主板收到備板同步確認消息時,主板刪除同步成功的記錄數(shù),并將累計到一定數(shù)量的未同步成功的記錄重新發(fā)送5、重復這個過程,直到緩沖為空。
6、如果在步驟5之前,后臺通知主板前后臺同步開始,則主板實時同步進程停止向備板實時同步進程發(fā)送數(shù)據(jù),但仍然可以進行步驟1和步驟2的操作,直到前后臺同步結束,才恢復后面的步驟3-步驟5。
本發(fā)明通過自動運行的實時同步進程和在主板上開辟的緩沖區(qū)實現(xiàn)了主板上數(shù)據(jù)變化到備板的及時同步,準確性高,占用資源少,實施簡單,不需要添加額外的硬件設備,只需要CPU的空閑時間和少量的內存就能減少主備倒換時間和用戶的掉話率,是既實用又簡單的好方法。
權利要求
1.通信系統(tǒng)中主備板數(shù)據(jù)實時同步的方法,其特征在于包括(1)在主、備板中各設置一數(shù)據(jù)緩沖區(qū);(2)當主板數(shù)據(jù)修改時,向其緩沖區(qū)中寫入主板修改過的數(shù)據(jù);(3)緩沖區(qū)對數(shù)據(jù)進行處理;(4)當緩沖區(qū)數(shù)據(jù)量達到一定時,主板實時同步進程從緩沖區(qū)中讀數(shù)據(jù)并發(fā)送到備板實時同步進程;(5)更新備板數(shù)據(jù)庫,并將操作結果返回給主板;(6)如果操作結果是同步成功,則刪除緩沖區(qū)中相應的數(shù)據(jù),否則重新發(fā)送數(shù)據(jù);(7)循環(huán)執(zhí)行(2)-(6),直至緩沖區(qū)中的數(shù)據(jù)記錄為空。
2.如權利要求1所述的方法,其特征在于,如果系統(tǒng)發(fā)生主備同步、前后臺同步或主備倒換時,停止執(zhí)行步驟(3)-(7),直至主板接收到相關操作結束的消息。
3.如權利要求1或2所述的方法,其特征在于,所述步驟(1)中的緩沖區(qū)分為數(shù)據(jù)區(qū)和標志區(qū),數(shù)據(jù)區(qū)存儲修改的記錄,標志區(qū)存儲被修改記錄的類型,包括插入、刪除等。
4.如權利要求1或2所述的方法,其特征在于,所述步驟(3)包括如果主板修改的數(shù)據(jù)是針對同一行號的記錄,則系統(tǒng)按照一定的規(guī)則在緩沖區(qū)中將這些修改進行逐一處理,并在緩沖區(qū)保留最后得到的數(shù)據(jù)。
全文摘要
本發(fā)明公開了通信系統(tǒng)中主備板數(shù)據(jù)實時同步的方法,在主、備板中各設置一數(shù)據(jù)緩沖區(qū);當主板數(shù)據(jù)修改時,向其緩沖區(qū)中寫入主板修改過的數(shù)據(jù);緩沖區(qū)對數(shù)據(jù)進行處理;當緩沖區(qū)數(shù)據(jù)量達到一定時,主板實時同步進程從緩沖區(qū)中讀數(shù)據(jù)并發(fā)送到備板實時同步進程;更新備板數(shù)據(jù)庫,并將操作結果返回給主板;如果操作結果是同步成功,則刪除緩沖區(qū)中相應的數(shù)據(jù),否則重新發(fā)送數(shù)據(jù),直至緩沖區(qū)內記錄為空。采用本發(fā)明所述方法后,與原有系統(tǒng)相比,主備倒換的時間大大減少,100000個用戶主備倒換的時間從原來的22秒降低到10秒,倒換時掉話率從原來8%降低到4%,提高了系統(tǒng)的穩(wěn)定性,保障更高的通話質量。
文檔編號H04L7/00GK1437348SQ02103019
公開日2003年8月20日 申請日期2002年2月4日 優(yōu)先權日2002年2月4日
發(fā)明者胡劍, 龔凡 申請人:深圳市中興通訊股份有限公司