最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

業(yè)務(wù)數(shù)據(jù)同步方法、恢復(fù)方法及裝置和網(wǎng)絡(luò)設(shè)備的制作方法

文檔序號(hào):7861352閱讀:243來(lái)源:國(guó)知局
專利名稱:業(yè)務(wù)數(shù)據(jù)同步方法、恢復(fù)方法及裝置和網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種業(yè)務(wù)數(shù)據(jù)同步方法、恢復(fù)方法及裝置和網(wǎng)絡(luò)設(shè)備。
背景技術(shù)
為提高服務(wù)器系統(tǒng)的可用性,常采用主備冗余設(shè)計(jì),以縮短主服務(wù)器故障導(dǎo)致服務(wù)不可用的時(shí)間。高可用集群是服務(wù)器系統(tǒng)主備冗余設(shè)計(jì)之一,是以減少服務(wù)中斷時(shí)間為目的的服務(wù)器集群技術(shù)。在高可用集群中,如果某個(gè)服務(wù)器失效,它的備用服務(wù)器將在短時(shí)間內(nèi)接管該服務(wù)器的職責(zé),以使高可用集群的整體服務(wù)盡可能可用,從而減少由集群中硬件和軟件異常所帶來(lái)的損失。
要使備用服務(wù)器能夠接管主服務(wù)器的職責(zé),必須保證主備服務(wù)器的數(shù)據(jù)庫(kù)完全一致,這就要求數(shù)據(jù)必須實(shí)時(shí)同步,尤其是對(duì)數(shù)據(jù)同步可靠性要求較高的一些關(guān)鍵業(yè)務(wù)數(shù)據(jù),以盡可能減少對(duì)于用戶的損失。一種常用的數(shù)據(jù)同步方法是利用數(shù)據(jù)庫(kù)現(xiàn)有的復(fù)制技術(shù),以事務(wù)為單位向備用服務(wù)器同步數(shù)據(jù)。由于以事務(wù)為單位的數(shù)據(jù)復(fù)制為異步復(fù)制,實(shí)時(shí)性受網(wǎng)絡(luò)及主服務(wù)器負(fù)載等因素的影響,所以數(shù)據(jù)庫(kù)復(fù)制技術(shù)在數(shù)據(jù)同步過程中存在時(shí)延,這就可能造成在主備服務(wù)器切換過程來(lái)不及將數(shù)據(jù)同步到備用服務(wù)器,從而導(dǎo)致切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致。

發(fā)明內(nèi)容
本發(fā)明提供一種業(yè)務(wù)數(shù)據(jù)同步方法、恢復(fù)方法及裝置和網(wǎng)絡(luò)設(shè)備,用以保證切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)完全一致。本發(fā)明第一方面提供一種業(yè)務(wù)數(shù)據(jù)同步方法,包括作為主服務(wù)器的第一服務(wù)器執(zhí)行同步處理事務(wù);所述同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在本地第一業(yè)務(wù)事務(wù)記錄表中記錄所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在所述業(yè)務(wù)事務(wù)日志表中設(shè)置所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,以供所述第二服務(wù)器在切換為主服務(wù)器之后,根據(jù)所述第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表和所述業(yè)務(wù)事務(wù)日志表實(shí)現(xiàn)與所述第一服務(wù)器的數(shù)據(jù)庫(kù)的同步,所述業(yè)務(wù)事務(wù)日志包括重新執(zhí)行所述第一業(yè)務(wù)事務(wù)所需的信息,所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由所述第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí);如果所述同步處理事務(wù)執(zhí)行成功,所述第一服務(wù)器設(shè)置所述業(yè)務(wù)事務(wù)日志表中所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交;所述第一服務(wù)器執(zhí)行同步事務(wù),所述同步事務(wù)包括向所述第二服務(wù)器同步所述第一業(yè)務(wù)數(shù)據(jù)并將所述第一業(yè)務(wù)事務(wù)記錄表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入所述第二業(yè)務(wù)事務(wù)記錄表中。本發(fā)明第二方面提供一種業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,包括
切換為主服務(wù)器的第二服務(wù)器判斷本地的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于本地的第二業(yè)務(wù)事務(wù)記錄表中;所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由切換之前作為主服務(wù)器的第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí);所述業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)所述第一服務(wù)器在切換之前根據(jù)執(zhí)行同步處理事務(wù)與入的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和提交狀態(tài) 目息; 如果判斷結(jié)果為否,所述第二服務(wù)器獲取存在于所述業(yè)務(wù)事務(wù)日志表中但不存在于所述第二業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí);如果所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交,所述第二服務(wù)器根據(jù)所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)。本發(fā)明第三方面提供一種業(yè)務(wù)數(shù)據(jù)同步裝置,設(shè)置于作為主服務(wù)器的第一服務(wù)器中,所述裝置包括
同步處理模塊,用于執(zhí)行同步處理事務(wù),所述同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在所述第一服務(wù)器的第一業(yè)務(wù)事務(wù)記錄表中記錄所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在所述業(yè)務(wù)事務(wù)日志表中設(shè)置所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,以供所述第二服務(wù)器在切換為主服務(wù)器之后,根據(jù)所述第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表和所述業(yè)務(wù)事務(wù)日志表實(shí)現(xiàn)與所述第一服務(wù)器的數(shù)據(jù)庫(kù)的同步,所述業(yè)務(wù)事務(wù)日志包括重新執(zhí)行所述第一業(yè)務(wù)事務(wù)所需的信息,所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由所述第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí);設(shè)置模塊,用于在所述同步處理事務(wù)執(zhí)行成功后,設(shè)置所述業(yè)務(wù)事務(wù)日志表中所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交;同步模塊,用于執(zhí)行同步事務(wù),所述同步事務(wù)包括向所述第二服務(wù)器同步所述第一業(yè)務(wù)數(shù)據(jù)并將所述第一業(yè)務(wù)事務(wù)記錄表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入所述第二業(yè)務(wù)事務(wù)記錄表中。本發(fā)明第四方面提供一種業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,設(shè)置于切換為主服務(wù)器的第二服務(wù)器中,所述裝置包括判斷模塊,用于判斷所述第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于所述第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表中;所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由切換之前作為主服務(wù)器的第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí);所述業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)所述第一服務(wù)器在切換之前根據(jù)執(zhí)行同步處理事務(wù)與入的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和提交狀態(tài) 目息;獲取模塊,用于在所述判斷模塊的判斷結(jié)果為否時(shí),獲取存在于所述業(yè)務(wù)事務(wù)日志表中但不存在于所述第二業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí);恢復(fù)處理模塊,用于在所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交時(shí),根據(jù)所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)。本發(fā)明第五方面提供一種網(wǎng)絡(luò)設(shè)備,包括本發(fā)明第三方面提供的任一業(yè)務(wù)數(shù)據(jù)同步裝置,和/或,本發(fā)明第四方面提供的任一業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置。
本發(fā)明提供的業(yè)務(wù)數(shù)據(jù)同步方法、裝置和網(wǎng)絡(luò)設(shè)備,第一服務(wù)器在作為主服務(wù)器時(shí),通過使用業(yè)務(wù)事務(wù)日志記錄重新執(zhí)行第一業(yè)務(wù)事務(wù)所需的業(yè)務(wù)事務(wù)日志,并將該業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器,在因故障第一服務(wù)器和第二服務(wù)器發(fā)生切換后,第二服務(wù)器在接管第一服務(wù)器的業(yè)務(wù)時(shí),若發(fā)現(xiàn)有業(yè)務(wù)數(shù)據(jù)未能從切換前的第一服務(wù)器上同步過來(lái),則可以根據(jù)業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)進(jìn)行業(yè)務(wù)數(shù)據(jù)的自動(dòng)恢復(fù),進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題。本發(fā)明提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法、裝置和網(wǎng)絡(luò)設(shè)備,第二服務(wù)器從備用服務(wù)器切換為主服務(wù)器之后,根據(jù)本地的第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表判斷在切換之前第一服務(wù)器是否有未能成功同步過來(lái)的業(yè)務(wù)數(shù)據(jù),并在判斷出有未能成功同步的業(yè)務(wù)數(shù)據(jù)后,根據(jù)業(yè)務(wù)事務(wù)日志表中記載的業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)產(chǎn)生業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)了與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致,進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題,有利于整個(gè)服務(wù)器系統(tǒng)服務(wù)質(zhì)量的提高。


圖I為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法的流程圖;圖2為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法的流程圖;圖3為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖;圖4為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明另一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式在存在主備冗余設(shè)計(jì)的服務(wù)器系統(tǒng)中,現(xiàn)有技術(shù)通常采用數(shù)據(jù)庫(kù)復(fù)制技術(shù)進(jìn)行數(shù)據(jù)同步。數(shù)據(jù)庫(kù)復(fù)制技術(shù)是以事務(wù)為單位向備用服務(wù)器同步數(shù)據(jù)的,由于以事務(wù)為單位的數(shù)據(jù)復(fù)制為異步復(fù)制,實(shí)時(shí)性受網(wǎng)絡(luò)及主服務(wù)器負(fù)載等因素的影響,該數(shù)據(jù)同步過程存在時(shí)延,有可能在主備服務(wù)器發(fā)生切換的過程中來(lái)不及將主服務(wù)器的數(shù)據(jù)同步到備用服務(wù)器,從而導(dǎo)致切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)的不完全一致。針對(duì)該問題,本發(fā)明實(shí)施例提供一種解決方案。本發(fā)明實(shí)施例提供的解決方案的主要核心思想是主服務(wù)器執(zhí)行業(yè)務(wù)事務(wù)產(chǎn)生業(yè)務(wù)數(shù)據(jù)、在本地記錄業(yè)務(wù)事務(wù)的標(biāo)識(shí)、根據(jù)業(yè)務(wù)事務(wù)處理過程中的日志信息生成業(yè)務(wù)事務(wù)日志并將業(yè)務(wù)事務(wù)日志寫入備用服務(wù)器;然后主服務(wù)器可以采用各種數(shù)據(jù)同步技術(shù)向備用服務(wù)器實(shí)時(shí)同步上述業(yè)務(wù)數(shù)據(jù)。上述業(yè)務(wù)事務(wù)日志包括重新執(zhí)行上述業(yè)務(wù)事務(wù)所需的信息。主用服務(wù)器使用業(yè)務(wù)事務(wù)日志記錄重新執(zhí)行上述業(yè)務(wù)事務(wù)所需的信息,然后將該信息寫入備用服務(wù)器,這樣主備服務(wù)器由于故障發(fā)生切換后,備用服務(wù)器在接管主服務(wù)器的業(yè)務(wù)時(shí),若發(fā)現(xiàn)有業(yè)務(wù)數(shù)據(jù)未能從切換前的主服務(wù)器上同步過來(lái),則可以根據(jù)業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)進(jìn)行業(yè)務(wù)數(shù)據(jù)的自動(dòng)恢復(fù),進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題。
在該解決方案中,主服務(wù)器將業(yè)務(wù)事務(wù)的執(zhí)行、在本地記錄業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將業(yè)務(wù)事務(wù)日志寫入備用服務(wù)器作為一個(gè)事務(wù)(本實(shí)施稱該事務(wù)為同步處理事務(wù))執(zhí)行,這樣可以保障業(yè)務(wù)事務(wù)的執(zhí)行、記錄業(yè)務(wù)事務(wù)的標(biāo)識(shí)和生成業(yè)務(wù)事務(wù)日志的原子性。由于向備用服務(wù)器寫入業(yè)務(wù)事務(wù)日志操作的是對(duì)端,雖然無(wú)法保證與本地?cái)?shù)據(jù)庫(kù)操作之間的原子性,但是向備用服務(wù)器寫入業(yè)務(wù)事務(wù)日志作為一個(gè)事務(wù)具有原子性。另夕卜,上述業(yè)務(wù)事務(wù)日志并未參與業(yè)務(wù)數(shù)據(jù)的同步過程,而是主服務(wù)器在執(zhí)行同步處理事務(wù)過程中主動(dòng)寫入備用服務(wù)器的。對(duì)于每一筆業(yè)務(wù)事務(wù)的操 作,主服務(wù)器都能夠產(chǎn)生足以用于重新執(zhí)行該業(yè)務(wù)事務(wù)所需的業(yè)務(wù)級(jí)日志(即業(yè)務(wù)事務(wù)日志)。每成功提交一筆業(yè)務(wù)事務(wù),主服務(wù)器都會(huì)在備用服務(wù)器上記錄對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志。下面實(shí)施例將分別描述切換前主服務(wù)器向備用服務(wù)器同步業(yè)務(wù)數(shù)據(jù)的過程和切換后主服務(wù)器根據(jù)業(yè)務(wù)事務(wù)日志恢復(fù)業(yè)務(wù)數(shù)據(jù)的過程。在本發(fā)明以下實(shí)施例中,為了便于描述和區(qū)分,將互為備份的兩個(gè)服務(wù)器分別成為第一服務(wù)器和第二服務(wù)器。圖I為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法的流程圖。如圖I所示,本實(shí)施例的方法包括步驟101、作為主服務(wù)器的第一服務(wù)器執(zhí)行同步處理事務(wù),該同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在本地第一業(yè)務(wù)事務(wù)記錄表中記錄第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在業(yè)務(wù)事務(wù)日志表中設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,以供第二服務(wù)器在切換為主服務(wù)器之后,根據(jù)第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表實(shí)現(xiàn)與第一服務(wù)器的數(shù)據(jù)庫(kù)的同步,該業(yè)務(wù)事務(wù)日志包括重新執(zhí)行第一業(yè)務(wù)事務(wù)所需的信息,第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由第一服務(wù)器同步到第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí)。在本實(shí)施例中,第一服務(wù)器為主服務(wù)器,第二服務(wù)器為備用服務(wù)器。對(duì)于每一個(gè)業(yè)務(wù)事務(wù),第一服務(wù)器對(duì)其處理流程都是相同的,故本實(shí)施例以其中一個(gè)業(yè)務(wù)事務(wù)為例進(jìn)行說(shuō)明,并將該業(yè)務(wù)事務(wù)稱為第一業(yè)務(wù)事務(wù)。在本實(shí)施例中,第一服務(wù)器上和第二服務(wù)器上均設(shè)置有一個(gè)業(yè)務(wù)事務(wù)記錄表,為便于區(qū)分將第一服務(wù)器上的業(yè)務(wù)事務(wù)記錄表稱為第一業(yè)務(wù)事務(wù)記錄表,將第二服務(wù)器上的業(yè)務(wù)事務(wù)記錄表稱為第二業(yè)務(wù)事務(wù)記錄表。第一業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)第一服務(wù)器執(zhí)行的業(yè)務(wù)事務(wù)的標(biāo)識(shí)(ID),這樣便于第一服務(wù)器知道已經(jīng)處理了哪些業(yè)務(wù)事務(wù);第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由第一服務(wù)器成功同步到第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí),這樣便于第二服務(wù)器了解第一服務(wù)器將哪些業(yè)務(wù)事務(wù)的業(yè)務(wù)數(shù)據(jù)成功同步過來(lái)了。第二服務(wù)器上還設(shè)置有業(yè)務(wù)事務(wù)日志表,該業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)第一服務(wù)器成功執(zhí)行的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志以及業(yè)務(wù)事務(wù)的提交狀態(tài)信息。對(duì)于任何一個(gè)事務(wù)來(lái)說(shuō),在事務(wù)執(zhí)行過程中,所有的操作都是在虛擬的環(huán)境中進(jìn)行的,只有事務(wù)執(zhí)行成功時(shí)才將事務(wù)進(jìn)行的所有修改更新到數(shù)據(jù)庫(kù)的存儲(chǔ)介質(zhì)上,例如硬盤;如果事務(wù)執(zhí)行失敗,需要進(jìn)行回滾操作,以便可以取消事務(wù)所進(jìn)行的修改;如果事務(wù)執(zhí)行成功后,再執(zhí)行回滾操作是無(wú)效的。這里的事務(wù)執(zhí)行成功也就是該事務(wù)提交成功,事務(wù)執(zhí)行失敗意味著事務(wù)提交失敗。本實(shí)施例的同步處理事務(wù)屬于一個(gè)事務(wù),業(yè)務(wù)事務(wù)屬于同步處理事務(wù)中的一個(gè)操作,因此,同步處理事務(wù)執(zhí)行成功意味著業(yè)務(wù)事務(wù)提交成功,同步處理事務(wù)執(zhí)行失敗也就意味著業(yè)務(wù)事務(wù)提交失敗。其中,如果業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交,意味著同步處理事務(wù)執(zhí)行成功。在本實(shí)施例中,第一服務(wù)器將執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在本地第一業(yè)務(wù)事務(wù)記錄表中記錄第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表并在業(yè)務(wù)事務(wù)日志表中設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交這些操作作為一個(gè)整體的事務(wù)(即同步處理事務(wù)),以保證各動(dòng)作之間的原子性。其中,由于將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表并在業(yè)務(wù)事務(wù)日志表中設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交這些操作的對(duì)象是對(duì)端,所以無(wú)法保證與前面幾個(gè)操作的原子性,但是這些操作之間具有原子性。步驟102、如果該同步處理事務(wù)執(zhí)行成功,第一服務(wù)器可以設(shè)置業(yè)務(wù)事務(wù)日志表中第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交。首先,第一服務(wù)器會(huì)啟動(dòng)同步處理事務(wù),接著執(zhí)行該同步處理事務(wù)的流程,接下來(lái)是同步處理事務(wù)的提交。如果該同步處理事務(wù)執(zhí)行成功,第一服務(wù)器可以設(shè)置業(yè)務(wù)事務(wù)日 志表中第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交,這也表明了第一服務(wù)器的數(shù)據(jù)庫(kù)中已經(jīng)存在第一業(yè)務(wù)數(shù)據(jù)??蛇x的,如果該同步處理事務(wù)執(zhí)行失敗,則第一服務(wù)器刪除第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志以及第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息。此時(shí)的提交狀態(tài)信息為未提交。步驟103、第一服務(wù)器執(zhí)行同步事務(wù),該同步事務(wù)包括向第二服務(wù)器提交第一業(yè)務(wù)數(shù)據(jù)并將第一業(yè)務(wù)事務(wù)記錄表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入第二業(yè)務(wù)事務(wù)記錄表中。具體的,如果上述同步處理事務(wù)執(zhí)行成功,則第一服務(wù)器還會(huì)向第二服務(wù)器同步第一業(yè)務(wù)數(shù)據(jù)并將第一業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入第二業(yè)務(wù)事務(wù)記錄表中,以便于第二服務(wù)器獲知第一服務(wù)器已經(jīng)成功將第一業(yè)務(wù)數(shù)據(jù)同步過來(lái)。其中,第一服務(wù)器可以采用各種數(shù)據(jù)同步技術(shù)向第二服務(wù)器同步第一業(yè)務(wù)數(shù)據(jù)。例如,第一服務(wù)器可以采用數(shù)據(jù)庫(kù)復(fù)制技術(shù)向第二服務(wù)器同步第一業(yè)務(wù)數(shù)據(jù)。又例如,第一服務(wù)器也可以采用同步應(yīng)用程序周期性的向第二服務(wù)器同步第一業(yè)務(wù)數(shù)據(jù)。在此說(shuō)明,本實(shí)施例并不限定步驟102和步驟103之間的執(zhí)行順序,可以并行執(zhí)行。在此說(shuō)明,上述各種操作均是第一服務(wù)器在作為主服務(wù)器的情況下執(zhí)行的。如果第一服務(wù)器在執(zhí)行任何一個(gè)操作過程中,與第二服務(wù)器發(fā)生切換(即第一服務(wù)器切換為備用服務(wù)器,而第二服務(wù)器切換為主服務(wù)器),則該操作和該操作之后的操作就會(huì)終止。舉例說(shuō)明如果第一服務(wù)器在執(zhí)行同步處理事務(wù)的過程中,與第二服務(wù)器發(fā)生切換,則該同步處理事務(wù)過程就會(huì)中斷,由于同步處理事務(wù)本身的原子性,該同步處理事務(wù)執(zhí)行過程中產(chǎn)生的各種信息都將被回滾,即第一服務(wù)器上在同步處理事務(wù)執(zhí)行過程中產(chǎn)生的信息都將被刪除。但是由于同步處理事務(wù)中將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器以及設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息無(wú)法保證與前述幾個(gè)操作之間的原子性,所以如果同步處理事務(wù)執(zhí)行到向第二服務(wù)器寫入第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志以及設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息,則第二服務(wù)器上會(huì)存在第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志以及提交狀態(tài)信息等。對(duì)于這種情況,第二服務(wù)器將會(huì)作為存疑事務(wù)進(jìn)行處理。如果在同步處理事務(wù)執(zhí)行成功后,第一服務(wù)器設(shè)置第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交過程中,與第二服務(wù)器發(fā)生切換,可能導(dǎo)致第一服務(wù)器來(lái)不及將第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息設(shè)置為已提交,在這種情況下,第二服務(wù)器的業(yè)務(wù)事日志表中就會(huì)記錄有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和未提交狀態(tài)信息。在該情況下,由于上述步驟102和步驟103的先后順序不做限定,所以第一服務(wù)器有可能已經(jīng)將第一業(yè)務(wù)數(shù)據(jù)成功同步到第二服務(wù)器的數(shù)據(jù)庫(kù)中。如果在同步處理事務(wù)執(zhí)行失敗后,第一服務(wù)器刪除第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中關(guān)于第一業(yè)務(wù)事務(wù)的信息的過程,與第二服務(wù)器發(fā)生切換,則可能導(dǎo)致第一服務(wù)器來(lái)不及將第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中關(guān)于第一業(yè)務(wù)事務(wù)的信息刪除,在這種情況下,第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中就會(huì)存儲(chǔ)有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和未提交狀態(tài) 信息。如果在第一服務(wù)器執(zhí)行同步事務(wù)的過程中,與第二服務(wù)器發(fā)生切換,由于同步第一業(yè)務(wù)數(shù)據(jù)需要一定時(shí)間(即所謂存在的時(shí)延),可能導(dǎo)致第一業(yè)務(wù)數(shù)據(jù)不能成功同步到第二服務(wù)器,則第一服務(wù)器也就不會(huì)將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表中,在該情況下,第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中存儲(chǔ)有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和已提交狀態(tài)信息。由上述可見,在第一服務(wù)器和第二服務(wù)器發(fā)生切換之后,對(duì)第二服務(wù)器來(lái)說(shuō),可以根據(jù)其業(yè)務(wù)事務(wù)日志表和第二業(yè)務(wù)事務(wù)記錄表進(jìn)行比較,得到以下幾種情況第一種情況業(yè)務(wù)事務(wù)日志表中記錄有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí),且第二業(yè)務(wù)事務(wù)記錄表中存儲(chǔ)有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)。該情況說(shuō)明第一服務(wù)器在發(fā)生切換之前成功將第一業(yè)務(wù)數(shù)據(jù)同步到了第二服務(wù)器。此時(shí),作為主服務(wù)器的第二服務(wù)器不需要對(duì)第一業(yè)務(wù)數(shù)據(jù)進(jìn)行恢復(fù)處理。第二種情況業(yè)務(wù)事務(wù)日志表中記錄有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和未提交狀態(tài)信息,而第二業(yè)務(wù)事務(wù)記錄表中未存儲(chǔ)第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)。該情況說(shuō)明第一服務(wù)器在發(fā)生切換之前未能成功將第一業(yè)務(wù)數(shù)據(jù)同步給第二服務(wù)器,且由于業(yè)務(wù)事務(wù)日志表中記錄的提交狀態(tài)信息為未提交,因此,第二服務(wù)器無(wú)法判定第一服務(wù)器上的同步處理事務(wù)是否成功提交,所以無(wú)法確定第一服務(wù)器的數(shù)據(jù)庫(kù)中是否一定存在第一業(yè)務(wù)數(shù)據(jù),故無(wú)法確定是否需要重新執(zhí)行第一業(yè)務(wù)事務(wù)。在該情況下,作為主服務(wù)器的第二服務(wù)器可以將第一業(yè)務(wù)事務(wù)作為存疑事務(wù),并將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中,以等待管理人員進(jìn)行處理。例如,管理人員可以確定需要對(duì)該存疑業(yè)務(wù)進(jìn)行重做,則第二服務(wù)器可以根據(jù)存疑業(yè)務(wù)事務(wù)表中記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),將該第一業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到本地?cái)?shù)據(jù)庫(kù)中從而保持與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致。又例如,管理人員可以確定忽略該存疑業(yè)務(wù),即不需要重做該存疑業(yè)務(wù),則第二服務(wù)器可以將存疑業(yè)務(wù)事務(wù)表中存儲(chǔ)的該第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志等信息刪除,以防止重復(fù)對(duì)該存疑業(yè)務(wù)進(jìn)行處理。
第三種情況業(yè)務(wù)事務(wù)日志表中存儲(chǔ)有第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和已提交狀態(tài)信息,但第二業(yè)務(wù)事務(wù)記錄表中不存在第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)。該情況說(shuō)明第一服務(wù)器在切換之前成功提交了同步處理事務(wù),第一服務(wù)器的數(shù)據(jù)庫(kù)中已經(jīng)存在第一業(yè)務(wù)數(shù)據(jù),但是第一業(yè)務(wù)數(shù)據(jù)未能成功同步到第二服務(wù)器。針對(duì)該情況,作為主服務(wù)器的第二服務(wù)器可以根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),將第一業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到本地的數(shù)據(jù)庫(kù)中,從而保持與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致。由上述可見,本實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法,第一服務(wù)器在作為主服務(wù)器時(shí),通過使用業(yè)務(wù)事務(wù)日志記錄重新執(zhí)行第一業(yè)務(wù)事務(wù)所需的業(yè)務(wù)事務(wù)日志,并將該業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器,在因故障第一服務(wù)器和第二服務(wù)器發(fā)生切換后,第二服務(wù)器在接管第一服務(wù)器的業(yè)務(wù)時(shí),若發(fā)現(xiàn)有業(yè)務(wù)數(shù)據(jù)未能從切換前的第一服務(wù)器上同步過來(lái),則可以根據(jù)業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)進(jìn)行業(yè)務(wù)數(shù)據(jù)的自動(dòng)恢復(fù),進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題。圖2為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法的流程圖。如圖2所示,本實(shí)施 例的方法包括步驟201、切換為主服務(wù)器的第二服務(wù)器判斷本地的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于本地的第二業(yè)務(wù)事務(wù)記錄表中;如果判斷結(jié)果為否,執(zhí)行步驟202 ;如果判斷結(jié)果為是,執(zhí)行步驟204。其中,第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)切換之前由作為主服務(wù)器的第一服務(wù)器成功同步到第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí),業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)第一服務(wù)器在切換之前根據(jù)執(zhí)行同步處理事務(wù)寫入的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、寫入的業(yè)務(wù)事務(wù)的業(yè)務(wù)事務(wù)日志和寫入的業(yè)務(wù)事務(wù)的提交狀態(tài)信息。在本實(shí)施例中,所述切換是指主備服務(wù)器切換,在切換之前,第一服務(wù)器為主服務(wù)器,第二服務(wù)器為備用服務(wù)器,在切換之后,第一服務(wù)器為備用服務(wù)器,第二服務(wù)器為主服務(wù)器。本實(shí)施例主要描述的是發(fā)生切換之后,第二服務(wù)器作為主服務(wù)器時(shí)進(jìn)行數(shù)據(jù)恢復(fù)的過程。在第二服務(wù)器上設(shè)置有第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表,這兩個(gè)表中的信息都是由切換之前作為主服務(wù)器的第一服務(wù)器寫入的。具體的,第二業(yè)務(wù)事務(wù)記錄表中存儲(chǔ)的是由切換之前作為主服務(wù)器的第一服務(wù)器成功同步到第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí)。第一服務(wù)器在作為主服務(wù)器時(shí),會(huì)執(zhí)行同步處理事務(wù)并會(huì)記錄同步處理事務(wù)過程中執(zhí)行的業(yè)務(wù)事務(wù)的標(biāo)識(shí)到第一業(yè)務(wù)事務(wù)記錄表中,如果同步處理事務(wù)執(zhí)行成功,第一服務(wù)器會(huì)執(zhí)行同步事務(wù),以向第二服務(wù)器同步該同步處理事務(wù)過程中產(chǎn)生的業(yè)務(wù)數(shù)據(jù)并將第一業(yè)務(wù)事務(wù)記錄表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)同步到第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表中。第一業(yè)務(wù)事務(wù)記錄表設(shè)置在第一服務(wù)器上,用于存儲(chǔ)第一服務(wù)器已經(jīng)成功執(zhí)行的業(yè)務(wù)事務(wù)的標(biāo)識(shí)。業(yè)務(wù)事務(wù)日志表中存儲(chǔ)有業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和業(yè)務(wù)事務(wù)的提交狀態(tài)信息。其中,業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志是發(fā)生切換之前作為主服務(wù)器的第一服務(wù)器在執(zhí)行同步處理事務(wù)過程中生成并寫入業(yè)務(wù)事務(wù)日志表中的。另外,在業(yè)務(wù)事務(wù)執(zhí)行過程中,第一服務(wù)器還會(huì)在業(yè)務(wù)事務(wù)日志表中設(shè)置業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,并會(huì)在同步處理事務(wù)執(zhí)行成功之后,將業(yè)務(wù)事務(wù)日志表中業(yè)務(wù)事務(wù)的提交狀態(tài)信息設(shè)置為已提交?;诖耍緦?shí)施例的業(yè)務(wù)事務(wù)日志表中的提交狀態(tài)信息可能是未提交,有可能是已提交。如果業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交,說(shuō)明該業(yè)務(wù)事務(wù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)已經(jīng)存在于第一服務(wù)器的數(shù)據(jù)庫(kù)中。由上述可見,在發(fā)生切換之后,作為主服務(wù)器的第二服務(wù)器通過比較第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí),可以確定哪些業(yè)務(wù)事務(wù)的業(yè)務(wù)數(shù)據(jù)沒有從第一服務(wù)器上成功同步過來(lái)。具體的,作為主服務(wù)器的第二服務(wù)器判斷本地的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于本地的第二業(yè)務(wù)事務(wù)記錄表中。可選的,第二服務(wù)器可以逐一將業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)與第二業(yè)務(wù)事務(wù)記錄表中的業(yè)務(wù)事務(wù)的標(biāo)識(shí)進(jìn)行比較。如果判斷結(jié)果為是,說(shuō)明切換之前第一服務(wù)器已經(jīng)成功將其上全部的業(yè)務(wù)數(shù)據(jù)同步到了第二服務(wù)器上,則切換之后作為主服務(wù)器的第二服務(wù)器可以直接接管業(yè)務(wù),并開始繼續(xù)對(duì)外提供服務(wù),即執(zhí)行步驟204。如果判斷結(jié)果為否,作為主服 務(wù)器的第二服務(wù)器獲取存在于業(yè)務(wù)事務(wù)日志表中但不存在于第二業(yè)務(wù)事務(wù)記錄表中的業(yè)務(wù)事務(wù)的標(biāo)識(shí),即執(zhí)行步驟202。為便于描述,本實(shí)施例將存在于業(yè)務(wù)事務(wù)日志表中但不存在于第二業(yè)務(wù)事務(wù)記錄表中的業(yè)務(wù)事務(wù)的標(biāo)識(shí)稱為第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)。步驟202、第二服務(wù)器獲取存在于業(yè)務(wù)事務(wù)日志表中但不存在于第二業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí),轉(zhuǎn)去執(zhí)行步驟203。步驟203、如果業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交,第二服務(wù)器根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)數(shù)據(jù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)。第二服務(wù)器獲取到第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)后,進(jìn)一步判斷業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息是已提交還是未提交。如果是已提交,則說(shuō)明第一服務(wù)器的數(shù)據(jù)庫(kù)中已經(jīng)存在第一業(yè)務(wù)事務(wù)的業(yè)務(wù)數(shù)據(jù)(即第一業(yè)務(wù)數(shù)據(jù)),故第二服務(wù)器根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),將第一業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在本地的數(shù)據(jù)庫(kù)中,這樣就可以保持與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致??蛇x的,為了避免第二服務(wù)器發(fā)生重復(fù)根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)的操作,如果業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交,第二服務(wù)器除了根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)之外,還可以刪除業(yè)務(wù)事務(wù)日志表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息??蛇x的,如果第二服務(wù)器根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)失敗,說(shuō)明該第一業(yè)務(wù)事務(wù)存在問題,需要做進(jìn)一步處理??蛇x的,在本實(shí)施例中,第二服務(wù)器可以將根據(jù)業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)、刪除業(yè)務(wù)事務(wù)日志表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息作為一個(gè)整體的事務(wù)來(lái)執(zhí)行,這樣可以保證這些操作之間的原子性,使這些之間保持同步。本實(shí)施例將這里的整體的事務(wù)稱為恢復(fù)事務(wù),則第二服務(wù)器具體可以通過執(zhí)行恢復(fù)事務(wù),以完成根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),以及刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作??蛇x的,由上述實(shí)施例提供的發(fā)生切換之后,第二服務(wù)器根據(jù)其業(yè)務(wù)事務(wù)日志表和第二業(yè)務(wù)事務(wù)記錄表進(jìn)行比較得到的幾種情況可知,第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表中不存在第一業(yè)務(wù)事務(wù)的標(biāo)識(shí),而第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息是未提交。同樣由上述實(shí)施例的描述可知,產(chǎn)生這種情況的原因可能有多種,在一些原因下,第一服務(wù)器的數(shù)據(jù)庫(kù)中已經(jīng)存儲(chǔ)有第 一業(yè)務(wù)數(shù)據(jù),而在另一些原因下,第一服務(wù)器的數(shù)據(jù)庫(kù)中不存在第一業(yè)務(wù)數(shù)據(jù),因此,對(duì)于判斷出第二業(yè)務(wù)事務(wù)記錄表中不存在第一業(yè)務(wù)事務(wù)的標(biāo)識(shí),且業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交的情況,第二服務(wù)器無(wú)法確定是否需要根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù),需要做進(jìn)一步處理。針對(duì)根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)失敗的情況和無(wú)法確定是否需要根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)的情況,本實(shí)施例提供一種可選的解決方法。該解決方法包括第二服務(wù)器可以將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中,并將業(yè)務(wù)事務(wù)日志表中關(guān)于第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志以及第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息刪除。其中,將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中可以等待管理人員做進(jìn)一步處理。具體的,在整個(gè)服務(wù)器系統(tǒng)正常運(yùn)行以后,管理人員可以對(duì)存疑業(yè)務(wù)事務(wù)表中的存疑業(yè)務(wù)事務(wù)進(jìn)行處理。由于存疑業(yè)務(wù)事務(wù)表中已經(jīng)包含了自動(dòng)重做業(yè)務(wù)事務(wù)所需的業(yè)務(wù)事務(wù)日志,因此管理人員只需要決定是重做還是忽略該存疑業(yè)務(wù)事務(wù)即可,操作非常簡(jiǎn)單??蛇x的,在本實(shí)施例中,第二服務(wù)器可以將將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中,并將業(yè)務(wù)事務(wù)日志表中關(guān)于第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志以及第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息刪除作為一個(gè)整體的事務(wù)來(lái)執(zhí)行,這樣可以保證這些操作之間的原子性,使這些之間保持同步。本實(shí)施例將這里的整體的事務(wù)稱為存疑處理事務(wù),則第二服務(wù)器具體可以通過執(zhí)行存疑處理事務(wù),以完成將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。在此說(shuō)明,在上述將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中的過程中,如果失敗,即未能成功將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中,則第二服務(wù)器可以將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志記錄在數(shù)據(jù)庫(kù)之外的其他文件中,以便于后續(xù)查詢或進(jìn)一步處理。這里的文件可以txt文本或Word文檔。在此說(shuō)明,如果第二服務(wù)器的數(shù)據(jù)庫(kù)中已經(jīng)存在與第一業(yè)務(wù)事務(wù)對(duì)應(yīng)的第二業(yè)務(wù)數(shù)據(jù),則第二服務(wù)器在將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中之后并在對(duì)第一業(yè)務(wù)事務(wù)進(jìn)行處理之前,需要根據(jù)第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)判斷第二服務(wù)器本地的數(shù)據(jù)庫(kù)中是否存在與第一業(yè)務(wù)事務(wù)對(duì)應(yīng)的第二業(yè)務(wù)數(shù)據(jù),如果判斷結(jié)果為存在,則將第二業(yè)務(wù)數(shù)據(jù)進(jìn)行鎖定。這樣做可以在管理人員確定對(duì)第一業(yè)務(wù)事務(wù)的處理之前保護(hù)第一業(yè)務(wù)事務(wù)的相關(guān)數(shù)據(jù)。其中,第一業(yè)務(wù)事務(wù)對(duì)應(yīng)的第二業(yè)務(wù)數(shù)據(jù)主要是是第一業(yè)務(wù)數(shù)據(jù)操作中的相關(guān)存儲(chǔ)數(shù)據(jù),這些數(shù)據(jù)有可能成為后續(xù)可能對(duì)第一業(yè)務(wù)事務(wù)進(jìn)行的操作的對(duì)象。例如,繳費(fèi)100元是第一業(yè)務(wù)事務(wù),與該事務(wù)相關(guān)的會(huì)產(chǎn)生更新賬戶金額的動(dòng)作,更新后的賬戶金額是需要同步的第一業(yè)務(wù)數(shù)據(jù),而賬戶則是這里所述的需要鎖定的第二業(yè)務(wù)數(shù)據(jù),即在前面的操作沒有完成前,其他任何人不能對(duì)該賬戶進(jìn)行操作,避免混亂。。可選的,第二服務(wù)器也可以在執(zhí)行存疑處理事務(wù)的過程中完成鎖存第二業(yè)務(wù)數(shù)據(jù)的操作。也就是說(shuō),第二服務(wù)器可以同時(shí)將將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志存儲(chǔ)到存疑業(yè)務(wù)事務(wù)表中,將業(yè)務(wù)事務(wù)日志表中關(guān)于第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志以及第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息刪除,以及對(duì)第二業(yè)務(wù)數(shù)據(jù)進(jìn)行鎖定作為一個(gè)整體的事務(wù)來(lái)執(zhí)行,以保證這些操作之間的原子性,避免發(fā)生重復(fù)執(zhí)行相同操作的問題。如果管理人員確定對(duì)第一業(yè)務(wù)事務(wù)進(jìn)行重做,則第二服務(wù)器可以根據(jù)存疑業(yè)務(wù)事務(wù)表中記錄的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),并刪除存疑業(yè) 務(wù)事務(wù)表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志。在此說(shuō)明,這里第二服務(wù)器根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)的操作與第一服務(wù)器執(zhí)行同步處理事務(wù)的過程不同,不需要在重新執(zhí)行第一業(yè)務(wù)事務(wù)的過程中向第一服務(wù)器寫入該過程的業(yè)務(wù)事務(wù)日志。由于這里根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)的操作是在整個(gè)服務(wù)器系統(tǒng)正常運(yùn)行之后執(zhí)行的,因此,第二服務(wù)器已經(jīng)將存疑業(yè)務(wù)事務(wù)表同步給了第一服務(wù)器,第一服務(wù)器上已經(jīng)存在一個(gè)第一業(yè)務(wù)事務(wù)的存疑記錄,如果第二服務(wù)器還在根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)的過程中將該過程對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志寫入第一服務(wù)器,則在重新執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生的第一業(yè)務(wù)數(shù)據(jù)尚未完成同步時(shí)發(fā)生切換,即第一服務(wù)器重新切換為主服務(wù)器,第一服務(wù)器可能也會(huì)將該第一業(yè)務(wù)事務(wù)作為存疑業(yè)務(wù)事務(wù)寫入存疑業(yè)務(wù)事務(wù)記錄表中,這樣第一服務(wù)器的存疑業(yè)務(wù)事務(wù)記錄表中就會(huì)存在兩條相同的存疑記錄,為避免該問題,本實(shí)施例的第二服務(wù)器在根據(jù)記錄的業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)的過程中不向第一服務(wù)器寫入該過程對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志。進(jìn)一步說(shuō)明,對(duì)于同時(shí)存在于業(yè)務(wù)事務(wù)日志表和第二業(yè)務(wù)事務(wù)記錄表中的業(yè)務(wù)事務(wù)的標(biāo)識(shí),第二服務(wù)器會(huì)將這些業(yè)務(wù)事務(wù)的標(biāo)識(shí)以及所對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和提交狀態(tài)信息從業(yè)務(wù)事務(wù)日志表中刪除,并且也會(huì)將這些業(yè)務(wù)事務(wù)的標(biāo)識(shí)從第二業(yè)務(wù)事務(wù)記錄表中刪除。換句話說(shuō),第二服務(wù)器會(huì)在實(shí)現(xiàn)與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致之后,將本地的第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表刪除。因?yàn)樵谕瓿闪藰I(yè)務(wù)數(shù)據(jù)的恢復(fù)處理后,這兩張表的內(nèi)容就沒有用了,應(yīng)該給予清除以避免遺留產(chǎn)生副作用。進(jìn)一步,第二服務(wù)器根據(jù)存疑業(yè)務(wù)事務(wù)表中記錄的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)也可能成功,也可能失敗。如果失敗,則第二服務(wù)器可以將有關(guān)信息,例如第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)信息、業(yè)務(wù)事務(wù)日志以及重新執(zhí)行失敗結(jié)果等信息寫入指定的文件中進(jìn)行記錄,以便于后續(xù)進(jìn)行查看。步驟204、第二服務(wù)器接管業(yè)務(wù),并繼續(xù)對(duì)外提供服務(wù)。由上述可見,本實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,與上述業(yè)務(wù)數(shù)據(jù)同步方法相配合,第二服務(wù)器從備用服務(wù)器切換為主服務(wù)器之后,根據(jù)本地的第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表判斷在切換之前第一服務(wù)器是否有未能成功同步過來(lái)的業(yè)務(wù)數(shù)據(jù),并在判斷出有未能成功同步的業(yè)務(wù)數(shù)據(jù)后,根據(jù)業(yè)務(wù)事務(wù)日志表中記載的業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)產(chǎn)生業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)了與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致,進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題,有利于整個(gè)服務(wù)器系統(tǒng)服務(wù)質(zhì)量的提高。在此說(shuō)明,本發(fā)明上述實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法和業(yè)務(wù)數(shù)據(jù)恢復(fù)方法可以適用于任何業(yè)務(wù)數(shù)據(jù),但是尤其適用于對(duì)數(shù)據(jù)同步可靠性要求較高的一些關(guān)鍵業(yè)務(wù)數(shù)據(jù),例如繳費(fèi)業(yè)務(wù)產(chǎn)生的繳費(fèi)數(shù)據(jù)等。圖3為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖。本實(shí)施例的業(yè)務(wù)數(shù)據(jù)同步裝置設(shè)置在作為主服務(wù)器的第一服務(wù)器中實(shí)現(xiàn)。如圖3所示,本實(shí)施例的裝置包括同步處理模塊31、設(shè)置模塊32和同步模塊33。 同步處理模塊31,用于執(zhí)行同步處理事務(wù),該同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在第一服務(wù)器的第一業(yè)務(wù)事務(wù)記錄表中記錄第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在業(yè)務(wù)事務(wù)日志表中設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,以供第二服務(wù)器在切換為主服務(wù)器之后,根據(jù)第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表實(shí)現(xiàn)與第一服務(wù)器的數(shù)據(jù)庫(kù)的同步。其中,業(yè)務(wù)事務(wù)日志包括重新執(zhí)行第一業(yè)務(wù)事務(wù)所需的信息,第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由第一服務(wù)器成功同步到第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí)。第一服務(wù)器和第二服務(wù)器互為備份。設(shè)置模塊32,與同步處理模塊31連接,用于在同步處理模塊31執(zhí)行同步處理事務(wù)成功后,設(shè)置業(yè)務(wù)事務(wù)日志表中第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交。同步模塊33,用于執(zhí)行同步事務(wù),所述同步事務(wù)包括向所述第二服務(wù)器同步所述第一業(yè)務(wù)數(shù)據(jù)并將所述第一業(yè)務(wù)事務(wù)記錄表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入所述第二業(yè)務(wù)事務(wù)記錄表中??蛇x的,同步模塊33與同步處理模塊31連接,用于在同步處理模塊31執(zhí)行同步處理事務(wù)成功后,執(zhí)行同步事務(wù)。可選的,本實(shí)施例的業(yè)務(wù)數(shù)據(jù)同步裝置還包括刪除模塊34。刪除模塊34,與同步處理模塊31連接,用于在同步處理模塊31執(zhí)行同步處理事務(wù)失敗后,刪除業(yè)務(wù)事務(wù)日志表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和提交狀態(tài)信息。本實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝置的各功能模塊可用于執(zhí)行圖I所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法中的相應(yīng)流程,其具體工作原理不再贅述,詳見方法實(shí)施例的描述。本實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝置,在其所在的第一服務(wù)器作為主服務(wù)器時(shí),通過使用業(yè)務(wù)事務(wù)日志記錄重新執(zhí)行第一業(yè)務(wù)事務(wù)所需的業(yè)務(wù)事務(wù)日志,并將該業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器,使得在因故障第一服務(wù)器和第二服務(wù)器發(fā)生切換后,第二服務(wù)器在接管第一服務(wù)器的業(yè)務(wù)時(shí),若發(fā)現(xiàn)有業(yè)務(wù)數(shù)據(jù)未能從切換前的第一服務(wù)器上同步過來(lái),可以根據(jù)業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)進(jìn)行業(yè)務(wù)數(shù)據(jù)的自動(dòng)恢復(fù),進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題。圖4為本發(fā)明一實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置的結(jié)構(gòu)示意圖。本實(shí)施例的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置設(shè)置在切換為主服務(wù)器的第二服務(wù)器中實(shí)現(xiàn)。如圖4所示,本實(shí)施例的裝置包括判斷模塊41、獲取模塊42和恢復(fù)處理模塊43。
其中,判斷模塊41,用于判斷第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表中。其中,第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由切換之前作為主服務(wù)器的第一服務(wù)器成功同步到第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí)。業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)第一服務(wù)器在切換之前根據(jù)執(zhí)行同步處理事務(wù)寫入的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和提交狀態(tài)信息。獲取模塊42,與判斷模塊41連接,用于在判斷模塊41的判斷結(jié)果為否時(shí),獲取存在于業(yè)務(wù)事務(wù)日志表中但不存在于第二業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)。恢復(fù)處理模塊43,與獲取模塊42連接,用于在業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交時(shí),根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)。可選的,恢復(fù)處理模塊43可以根據(jù)獲取模塊42獲取的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)判斷業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。在一可選實(shí)施方式中,恢復(fù)處理模塊43還用于在業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交時(shí),刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。可選的,恢復(fù)處理模塊43具體用于執(zhí)行恢復(fù)事務(wù),以完成根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),以及刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。也就是說(shuō),恢復(fù)事務(wù)包括根據(jù)業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),以及刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài) 信息。在一可選實(shí)施方式中,如圖5所示,本實(shí)施例的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置還包括存疑處理模塊44。存疑處理模塊44,與恢復(fù)處理模塊43連接,用于在業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為未提交時(shí),或者,在恢復(fù)處理模塊43根據(jù)業(yè)務(wù)事務(wù)日志重新執(zhí)行第一業(yè)務(wù)事務(wù)失敗時(shí),將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。可選的,存疑處理模塊44還可以與獲取模塊42連接,用于根據(jù)獲取模塊42獲取的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)判斷業(yè)務(wù)事務(wù)日志表中記錄的與第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息??蛇x的,存疑處理模塊44具體可用于執(zhí)行存疑處理事務(wù),以完成將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。也就是說(shuō),存疑處理事務(wù)包括將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,以及刪除業(yè)務(wù)事務(wù)日志表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。在一可選實(shí)施方式中,存疑處理模塊44還用于在將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中之后且在對(duì)第一業(yè)務(wù)事務(wù)進(jìn)行處理之前,判斷第二服務(wù)器的數(shù)據(jù)庫(kù)中是否存在與第一業(yè)務(wù)事務(wù)對(duì)應(yīng)的第二業(yè)務(wù)數(shù)據(jù),如果判斷結(jié)果為存在,將第二業(yè)務(wù)數(shù)據(jù)進(jìn)行鎖定。在一可選實(shí)施方式中,存疑處理模塊44還用于根據(jù)存疑業(yè)務(wù)事務(wù)表中記錄的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),刪除存疑業(yè)務(wù)事務(wù)表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志。本實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置的各功能模塊可用于執(zhí)行圖2所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法中的相應(yīng)流程,其具體工作原理不再贅述,詳見方法實(shí)施例的描述。本實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,與本發(fā)明上述實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝 置相配合,在其所在的第二服務(wù)器從備用服務(wù)器切換為主服務(wù)器之后,根據(jù)本地的第二業(yè)務(wù)事務(wù)記錄表和業(yè)務(wù)事務(wù)日志表判斷在切換之前第一服務(wù)器是否有未能成功同步過來(lái)的業(yè)務(wù)數(shù)據(jù),并在判斷出有未能成功同步的業(yè)務(wù)數(shù)據(jù)后,根據(jù)業(yè)務(wù)事務(wù)日志表中記載的業(yè)務(wù)事務(wù)日志重新執(zhí)行相應(yīng)的業(yè)務(wù)事務(wù)產(chǎn)生業(yè)務(wù)數(shù)據(jù),實(shí)現(xiàn)了與第一服務(wù)器的數(shù)據(jù)庫(kù)的一致,進(jìn)而解決了由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題,有利于整個(gè)服務(wù)器系統(tǒng)服務(wù)質(zhì)量的提聞。本發(fā)明一實(shí)施例提供一種網(wǎng)絡(luò)設(shè)備,包括本發(fā)明圖3所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝置。關(guān)于業(yè)務(wù)數(shù)據(jù)同步裝置的結(jié)構(gòu)和工作原理可參見上述裝置實(shí)施例和相應(yīng)的方法實(shí)施例,在此不再贅述。本實(shí)施例的網(wǎng)絡(luò)設(shè)備可以是各種應(yīng)用場(chǎng)景中需要進(jìn)行業(yè)務(wù)數(shù)據(jù)同步的主服務(wù)器。本實(shí)施例的網(wǎng)絡(luò)設(shè)備同樣可以執(zhí)行圖I所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法的流程,因此,可以解決由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題,有利于整個(gè)服務(wù)器系統(tǒng)服務(wù)質(zhì)量的提聞。本發(fā)明另一實(shí)施例提供一種網(wǎng)絡(luò)設(shè)備,包括圖4或圖5所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置。關(guān)于業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置的結(jié)構(gòu)和工作原理可參見上述裝置實(shí)施例和相應(yīng)方法實(shí)施例的描述,在此不再贅述。本實(shí)施例的網(wǎng)絡(luò)可以是各種數(shù)據(jù)同步場(chǎng)景中從備用狀態(tài)換為主用狀態(tài)的服務(wù)器。本實(shí)施例的網(wǎng)絡(luò)設(shè)備同樣可以執(zhí)行圖2所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法的流程,因此,可以解決由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題,有利于整個(gè)服務(wù)器系統(tǒng)服務(wù)質(zhì)量的提聞。本發(fā)明又一實(shí)施例提供一種網(wǎng)絡(luò)設(shè)備,包括圖3所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步裝置,以及圖4或圖5所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置。關(guān)于業(yè)務(wù)數(shù)據(jù)同步裝置和業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置的工作原理和結(jié)構(gòu)在此不再贅述。本實(shí)施例的網(wǎng)絡(luò)設(shè)備可以是各種應(yīng)用場(chǎng)景中需要進(jìn)行業(yè)務(wù)數(shù)據(jù)同步的服務(wù)器,其狀態(tài)可以是主用狀態(tài),也可以是備用狀態(tài)。
本實(shí)施例的網(wǎng)絡(luò)設(shè)備同樣可以執(zhí)行圖I所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)同步方法以及圖2所示實(shí)施例提供的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法的流程,因此,可以解決由于數(shù)據(jù)同步過程存在時(shí)延導(dǎo)致在主備服務(wù)器切換過程中來(lái)不及同步引起的切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)不完全一致的問題,有利于整個(gè)服務(wù)器系統(tǒng)服務(wù)質(zhì)量的提高。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其 依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種業(yè)務(wù)數(shù)據(jù)同步方法,其特征在于,包括 作為主服務(wù)器的第一服務(wù)器執(zhí)行同步處理事務(wù);所述同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在本地第一業(yè)務(wù)事務(wù)記錄表中記錄所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在所述業(yè)務(wù)事務(wù)日志表中設(shè)置所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,以供所述第二服務(wù)器在切換為主服務(wù)器之后,根據(jù)所述第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表和所述業(yè)務(wù)事務(wù)日志表實(shí)現(xiàn)與所述第一服務(wù)器的數(shù)據(jù)庫(kù)的同步,所述業(yè)務(wù)事務(wù)日志包括重新執(zhí)行所述第一業(yè)務(wù)事務(wù)所需的信息,所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由所述第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí); 如果所述同步處理事務(wù)執(zhí)行成功,所述第一服務(wù)器設(shè)置所述業(yè)務(wù)事務(wù)日志表中所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交; 所述第一服務(wù)器執(zhí)行同步事務(wù),所述同步事務(wù)包括向所述第二服務(wù)器同步所述第一業(yè)務(wù)數(shù)據(jù)并將所述第一業(yè)務(wù)事務(wù)記錄表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入所述第二業(yè)務(wù)事務(wù)記錄表中。
2.根據(jù)權(quán)利要求I所述的業(yè)務(wù)數(shù)據(jù)同步方法,其特征在于,還包括 如果所述同步處理事務(wù)執(zhí)行失敗,所述第一服務(wù)器刪除所述業(yè)務(wù)事務(wù)日志表中的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述業(yè)務(wù)事務(wù)日志和所述提交狀態(tài)信息。
3.—種業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,包括 切換為主服務(wù)器的第二服務(wù)器判斷本地的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于本地的第二業(yè)務(wù)事務(wù)記錄表中;所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由切換之前作為主服務(wù)器的第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí);所述業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)所述第一服務(wù)器在切換之前根據(jù)執(zhí)行同步處理事務(wù)與入的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和提交狀態(tài) 目息; 如果判斷結(jié)果為否,所述第二服務(wù)器獲取存在于所述業(yè)務(wù)事務(wù)日志表中但不存在于所述第二業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí); 如果所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交,所述第二服務(wù)器根據(jù)所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,還包括 如果所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交,所述第二服務(wù)器刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)息。
5.根據(jù)權(quán)利要求4所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,所述第二服務(wù)器執(zhí)行恢復(fù)事務(wù),以完成根據(jù)所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),以及刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。
6.根據(jù)權(quán)利要求3或4或5所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,還包括如果所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為未提交,或者,如果根據(jù)所述業(yè)務(wù)事務(wù)日志重新執(zhí)行所述第一業(yè)務(wù)事務(wù)失敗,所述第二服務(wù)器將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述 第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。
7.根據(jù)權(quán)利要求6所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,所述第二服務(wù)器執(zhí)行存疑處理事務(wù),以完成將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。
8.根據(jù)權(quán)利要求6所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,所述第二服務(wù)器將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中之后并在對(duì)所述第一業(yè)務(wù)事務(wù)進(jìn)行處理之前包括 所述第二服務(wù)器判斷所述第二服務(wù)器的數(shù)據(jù)庫(kù)中是否存在與所述第一業(yè)務(wù)事務(wù)對(duì)應(yīng)的第二業(yè)務(wù)數(shù)據(jù),如果判斷結(jié)果為存在,所述第二服務(wù)器將所述第二業(yè)務(wù)數(shù)據(jù)進(jìn)行鎖定。
9.根據(jù)權(quán)利要求6所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)方法,其特征在于,所述第二服務(wù)器將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中之后包括 根據(jù)所述存疑業(yè)務(wù)事務(wù)表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生所述第一業(yè)務(wù)數(shù)據(jù),刪除所述存疑業(yè)務(wù)事務(wù)表中的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志。
10.一種業(yè)務(wù)數(shù)據(jù)同步裝置,其特征在于,設(shè)置于作為主服務(wù)器的第一服務(wù)器中,所述裝置包括 同步處理模塊,用于執(zhí)行同步處理事務(wù),所述同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在所述第一服務(wù)器的第一業(yè)務(wù)事務(wù)記錄表中記錄所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在所述業(yè)務(wù)事務(wù)日志表中設(shè)置所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交,以供所述第二服務(wù)器在切換為主服務(wù)器之后,根據(jù)所述第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表和所述業(yè)務(wù)事務(wù)日志表實(shí)現(xiàn)與所述第一服務(wù)器的數(shù)據(jù)庫(kù)的同步,所述業(yè)務(wù)事務(wù)日志包括重新執(zhí)行所述第一業(yè)務(wù)事務(wù)所需的信息,所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由所述第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí); 設(shè)置模塊,用于在所述同步處理事務(wù)執(zhí)行成功后,設(shè)置所述業(yè)務(wù)事務(wù)日志表中所述第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交; 同步模塊,用于執(zhí)行同步事務(wù),所述同步事務(wù)包括向所述第二服務(wù)器同步所述第一業(yè)務(wù)數(shù)據(jù)并將所述第一業(yè)務(wù)事務(wù)記錄表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)寫入所述第二業(yè)務(wù)事務(wù)記錄表中。
11.根據(jù)權(quán)利要求10所述的業(yè)務(wù)數(shù)據(jù)同步裝置,其特征在于,還包括 刪除模塊,用于在所述同步處理事務(wù)執(zhí)行失敗后,刪除所述業(yè)務(wù)事務(wù)日志表中的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述業(yè)務(wù)事務(wù)日志和所述提交狀態(tài)信息。
12.—種業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,設(shè)置于切換為主服務(wù)器的第二服務(wù)器中,所述裝置包括 判斷模塊,用于判斷所述第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中記錄的業(yè)務(wù)事務(wù)的標(biāo)識(shí)是否全部存在于所述第二服務(wù)器的第二業(yè)務(wù)事務(wù)記錄表中;所述第二業(yè)務(wù)事務(wù)記錄表用于存儲(chǔ)由切換之前作為主服務(wù)器的第一服務(wù)器成功同步到所述第二服務(wù)器的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)事務(wù)的標(biāo)識(shí);所述業(yè)務(wù)事務(wù)日志表用于存儲(chǔ)所述第一服務(wù)器在切換之前根據(jù)執(zhí)行同步處理事務(wù)寫入的業(yè)務(wù)事務(wù)的標(biāo)識(shí)、業(yè)務(wù)事務(wù)日志和提交狀態(tài)信息; 獲取模塊,用于在所述判斷模塊的判斷結(jié)果為否時(shí),獲取存在于所述業(yè)務(wù)事務(wù)日志表中但不存在于所述第二業(yè)務(wù)事務(wù)記錄表中的第一業(yè)務(wù)事務(wù)的標(biāo)識(shí); 恢復(fù)處理模塊,用于在所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交時(shí),根據(jù)所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)。
13.根據(jù)權(quán)利要求12所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,所述恢復(fù)處理模塊還用于在所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為已提交時(shí),刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。
14.根據(jù)權(quán)利要求13所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,所述恢復(fù)處理模塊具體用于執(zhí)行恢復(fù)事務(wù),以完成根據(jù)所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生第一業(yè)務(wù)數(shù)據(jù),以及刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。
15.根據(jù)權(quán)利要求12或13或14所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,還包括 存疑處理模塊,用于在所述業(yè)務(wù)事務(wù)日志表中記錄的與所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息為未提交時(shí),或者,在所述恢復(fù)處理模塊根據(jù)所述業(yè)務(wù)事務(wù)日志重新執(zhí)行所述第一業(yè)務(wù)事務(wù)失敗時(shí),將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息。
16.根據(jù)權(quán)利要求15所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,所述存疑處理模塊具體用于執(zhí)行存疑處理事務(wù),以完成將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中,刪除所述業(yè)務(wù)事務(wù)日志表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的提交狀態(tài)信息的操作。
17.根據(jù)權(quán)利要求15所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,所述存疑處理模塊還用于在將所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志加入存疑業(yè)務(wù)事務(wù)表中之后且在對(duì)所述第一業(yè)務(wù)事務(wù)進(jìn)行處理之前,判斷所述第二服務(wù)器的數(shù)據(jù)庫(kù)中是否存在與所述第一業(yè)務(wù)事務(wù)對(duì)應(yīng)的第二業(yè)務(wù)數(shù)據(jù),如果判斷結(jié)果為存在,將所述第二業(yè)務(wù)數(shù)據(jù)進(jìn)行鎖定。
18.根據(jù)權(quán)利要求15所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置,其特征在于,所述存疑處理模塊還用于根據(jù)所述存疑業(yè)務(wù)事務(wù)表中記錄的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志,重新執(zhí)行所述第一業(yè)務(wù)事務(wù)以產(chǎn)生所述第一業(yè)務(wù)數(shù)據(jù),刪除所述存疑業(yè)務(wù)事務(wù)表中的所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和所述第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)事務(wù)日志。
19.一種網(wǎng)絡(luò)設(shè)備,其特征在于,包括權(quán)利要求10或11所述的業(yè)務(wù)數(shù)據(jù)同步裝置,和/或,權(quán)利要求12-18任一項(xiàng)所述的業(yè)務(wù)數(shù)據(jù)恢復(fù)裝置。
全文摘要
本發(fā)明提供一種業(yè)務(wù)數(shù)據(jù)同步方法、恢復(fù)方法及裝置和網(wǎng)絡(luò)設(shè)備。同步方法包括作為主服務(wù)器的第一服務(wù)器執(zhí)行同步處理事務(wù);該同步處理事務(wù)包括執(zhí)行第一業(yè)務(wù)事務(wù)產(chǎn)生第一業(yè)務(wù)數(shù)據(jù)、在本地第一業(yè)務(wù)事務(wù)記錄表中記錄第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)、生成業(yè)務(wù)事務(wù)日志以及將第一業(yè)務(wù)事務(wù)的標(biāo)識(shí)和業(yè)務(wù)事務(wù)日志寫入第二服務(wù)器的業(yè)務(wù)事務(wù)日志表中并在業(yè)務(wù)事務(wù)日志表中設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為未提交;如果同步處理事務(wù)執(zhí)行成功,設(shè)置第一業(yè)務(wù)事務(wù)的提交狀態(tài)信息為已提交;第一服務(wù)器執(zhí)行同步事務(wù),以向第二服務(wù)器同步第一業(yè)務(wù)數(shù)據(jù)。采用本發(fā)明技術(shù)方案可以保證切換前后主備服務(wù)器的數(shù)據(jù)庫(kù)完全一致。
文檔編號(hào)H04L12/24GK102891849SQ20121036111
公開日2013年1月23日 申請(qǐng)日期2012年9月25日 優(yōu)先權(quán)日2012年9月25日
發(fā)明者陽(yáng)外玲 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1