国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種數(shù)據(jù)恢復(fù)的方法和裝置與流程

      文檔序號(hào):12120310閱讀:336來源:國知局
      一種數(shù)據(jù)恢復(fù)的方法和裝置與流程

      本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)恢復(fù)的方法和裝置。



      背景技術(shù):

      隨著終端技術(shù)的快速發(fā)展,各種類型的終端不斷涌現(xiàn),如臺(tái)式機(jī)、筆記本電腦、手機(jī)、平板電腦等,這些終端已經(jīng)成為人們?nèi)粘9ぷ骱蜕畹闹匾ぞ?,被人們使用的頻率越來越高。用戶在使用終端的過程中,會(huì)在終端中產(chǎn)生各種各樣的數(shù)據(jù),比如照片、視頻文件、聯(lián)系人等數(shù)據(jù)。隨著時(shí)間的積累,終端中存儲(chǔ)的數(shù)據(jù)越來越多,而終端的存儲(chǔ)容量是有限的,所以,很多用戶通過云服務(wù)將終端中的數(shù)據(jù)進(jìn)行備份。為了防止數(shù)據(jù)丟失,目前大多數(shù)云服務(wù)已具備數(shù)據(jù)自動(dòng)備份的功能,云服務(wù)會(huì)定期將系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)備份到備份數(shù)據(jù)庫中,一旦系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)丟失,可利用備份數(shù)據(jù)庫中的備份數(shù)據(jù)對系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行恢復(fù)。但是,如果將備份數(shù)據(jù)庫中的全部備份數(shù)據(jù)都恢復(fù)到系統(tǒng)數(shù)據(jù)庫中,恢復(fù)時(shí)間較長、效率較差。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的主要目的在于提出一種數(shù)據(jù)恢復(fù)的方法和裝置,將系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)快速準(zhǔn)確的恢復(fù)到某一備份節(jié)點(diǎn)時(shí)的數(shù)據(jù)。

      為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種數(shù)據(jù)恢復(fù)的裝置,包括:

      獲取模塊,用于從云服務(wù)的會(huì)話緩存中獲取對比結(jié)果,所述對比結(jié)果包括:終端信息、數(shù)據(jù)類型信息、第一版本號(hào)信息以及差異數(shù)據(jù);

      判斷模塊,用于判斷所述云服務(wù)的系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)是否與所述第一版本號(hào)相同;

      恢復(fù)模塊,用于在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。

      進(jìn)一步的,所述系統(tǒng)數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)。

      進(jìn)一步的,所述差異數(shù)據(jù)為所述終端的所述數(shù)據(jù)類型的第二版本號(hào)的數(shù)據(jù)相對于所述終端的所述數(shù)據(jù)類型的第一版本號(hào)的數(shù)據(jù)的新增數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)。

      進(jìn)一步的,所述第二版本號(hào)的數(shù)據(jù)存儲(chǔ)在所述云服務(wù)的備份數(shù)據(jù)庫中;

      所述備份數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的各個(gè)版本號(hào)的數(shù)據(jù)。

      進(jìn)一步的,所述判斷模塊,還用于:

      當(dāng)接收到所述對比結(jié)果時(shí),判斷所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)是否已加鎖,若是,則結(jié)束數(shù)據(jù)恢復(fù)操作;若否,則對所述最新版本號(hào)的數(shù)據(jù)進(jìn)行加鎖操作;

      所述裝置,還包括:

      解鎖模塊,用于當(dāng)所述數(shù)據(jù)恢復(fù)操作結(jié)束時(shí),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的恢復(fù)后的數(shù)據(jù)進(jìn)行解鎖操作。

      此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)恢復(fù)的方法,包括:

      從云服務(wù)的會(huì)話緩存中獲取對比結(jié)果,所述對比結(jié)果包括:終端信息、數(shù)據(jù)類型信息、第一版本號(hào)信息以及差異數(shù)據(jù);

      判斷所述云服務(wù)的系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)是否與所述第一版本號(hào)相同;

      在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。

      進(jìn)一步的,所述系統(tǒng)數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)。

      進(jìn)一步的,所述差異數(shù)據(jù)為所述終端的所述數(shù)據(jù)類型的第二版本號(hào)的數(shù)據(jù)相對于所述終端的所述數(shù)據(jù)類型的第一版本號(hào)的數(shù)據(jù)的新增數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)。

      進(jìn)一步的,所述第二版本號(hào)的數(shù)據(jù)存儲(chǔ)在所述云服務(wù)的備份數(shù)據(jù)庫中;

      所述備份數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的各個(gè)版本號(hào)的數(shù)據(jù)。

      進(jìn)一步的,所述方法,還包括:

      當(dāng)接收到所述對比結(jié)果時(shí),判斷所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)是否已加鎖,若是,則結(jié)束數(shù)據(jù)恢復(fù)操作;若否,則對所述最新版本號(hào)的數(shù)據(jù)進(jìn)行加鎖操作;

      當(dāng)所述數(shù)據(jù)恢復(fù)操作結(jié)束時(shí),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的恢復(fù)后的數(shù)據(jù)進(jìn)行解鎖操作。

      本發(fā)明提出的數(shù)據(jù)恢復(fù)的方法和裝置,利用數(shù)據(jù)對比結(jié)果,將系統(tǒng)數(shù)據(jù)庫的最新版本的數(shù)據(jù)恢復(fù)到之前任一備份節(jié)點(diǎn)時(shí)的數(shù)據(jù),所述對比結(jié)果中只包括指定版本號(hào)的數(shù)據(jù)與最新版本號(hào)的數(shù)據(jù)之間的差異數(shù)據(jù),所以利用所述差異數(shù)據(jù)就可對當(dāng)前最新版本的數(shù)據(jù)進(jìn)行恢復(fù)。本發(fā)明可以將系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)快速準(zhǔn)確的恢復(fù)到某一備份節(jié)點(diǎn)時(shí)的數(shù)據(jù)。

      附圖說明

      圖1為本發(fā)明第一實(shí)施例的數(shù)據(jù)恢復(fù)的裝置的組成結(jié)構(gòu)示意圖;

      圖2為本發(fā)明第二實(shí)施例的數(shù)據(jù)恢復(fù)的裝置的組成結(jié)構(gòu)示意圖;

      圖3為本發(fā)明第三實(shí)施例的數(shù)據(jù)恢復(fù)的方法的流程圖;

      圖4為本發(fā)明第四實(shí)施例的數(shù)據(jù)恢復(fù)的方法的流程圖;

      本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。

      具體實(shí)施方式

      應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      如圖1所示,本發(fā)明第一實(shí)施例提出一種數(shù)據(jù)恢復(fù)的裝置,具體包括以下組成部分:

      1)獲取模塊101,用于從云服務(wù)的會(huì)話緩存中獲取對比結(jié)果,所述對比結(jié)果包括:終端信息、數(shù)據(jù)類型信息、第一版本號(hào)信息以及差異數(shù)據(jù)。

      所述終端信息為在所述云服務(wù)中注冊的終端用戶的信息。

      所述數(shù)據(jù)類型包括:聯(lián)系人、通話記錄、短信、記事本、鬧鈴、日歷和書簽。

      第一版本號(hào)為發(fā)起數(shù)據(jù)對比操作時(shí)的所述終端的所述數(shù)據(jù)類型的在所述系統(tǒng)數(shù)據(jù)庫中的版本號(hào)。

      所述差異數(shù)據(jù)為所述終端的所述數(shù)據(jù)類型的第二版本號(hào)的數(shù)據(jù)相對于所述終端的所述數(shù)據(jù)類型的第一版本號(hào)的數(shù)據(jù)的新增數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)。

      所述第二版本號(hào)的數(shù)據(jù)存儲(chǔ)在所述云服務(wù)的備份數(shù)據(jù)庫中。

      所述系統(tǒng)數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)。

      所述備份數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的各個(gè)版本號(hào)的數(shù)據(jù)。

      2)判斷模塊102,用于判斷所述云服務(wù)的系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)是否與所述第一版本號(hào)相同;

      若是,則觸發(fā)恢復(fù)模塊103,執(zhí)行數(shù)據(jù)恢復(fù)操作;

      若否,則說明所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)已發(fā)生變更,需要將所述最新版本號(hào)的數(shù)據(jù)與所述第二版本號(hào)的數(shù)據(jù)進(jìn)行重新對比。

      具體的,判斷模塊102,還用于:

      當(dāng)接收到所述對比結(jié)果時(shí),判斷所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)是否已加鎖,若是,則說明所述最新版本的數(shù)據(jù)正在被使用或者正在進(jìn)行更新中,結(jié)束數(shù)據(jù)恢復(fù)操作;若否,則對所述最新版本號(hào)的數(shù)據(jù)進(jìn)行加鎖操作,以防止所述最新版本的數(shù)據(jù)在恢復(fù)過程中所述終端對所述最新版本的數(shù)據(jù)進(jìn)行修改、刪除或添加操作。

      3)恢復(fù)模塊103,用于在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。

      具體的,恢復(fù)模塊103,包括:

      新增單元,用于將所述差異數(shù)據(jù)中的新增數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述新增數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      修改單元,用于將所述差異數(shù)據(jù)中的修改數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述修改數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      刪除單元,用于在所述最新版本的數(shù)據(jù)中查找所述差異數(shù)據(jù)中的刪除數(shù)據(jù),并將所述最新版本中的所述刪除數(shù)據(jù)的狀態(tài)標(biāo)識(shí)status標(biāo)記為0,與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      在云服務(wù)中,為每個(gè)數(shù)據(jù)庫中的數(shù)據(jù)設(shè)置專題標(biāo)識(shí)status,當(dāng)status=0時(shí),表示所述數(shù)據(jù)處于正常狀態(tài);當(dāng)status=1時(shí),表示刪除所述數(shù)據(jù)的內(nèi)容,但可對所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

      進(jìn)一步的,所述裝置還包括:

      解鎖模塊,用于當(dāng)所述數(shù)據(jù)恢復(fù)操作結(jié)束時(shí),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的恢復(fù)后的數(shù)據(jù)進(jìn)行解鎖操作。對所述最新版本的數(shù)據(jù)進(jìn)行加鎖和解鎖操作,是為了保證所述最新版本的數(shù)據(jù)在數(shù)據(jù)恢復(fù)過程中的一致性。

      如圖2所示,本發(fā)明第二實(shí)施例提出一種數(shù)據(jù)恢復(fù)的裝置,具體包括以下組成部分:

      1)接收模塊201,用于接收終端發(fā)送來的數(shù)據(jù)恢復(fù)請求信息,所述數(shù)據(jù)恢復(fù)請求信息包括:對比結(jié)果索引信息。

      2)獲取模塊202,用于根據(jù)所述數(shù)據(jù)恢復(fù)請求信息中的對比結(jié)果索引信息從所述云服務(wù)的會(huì)話緩存中獲取與之對應(yīng)的對比結(jié)果,開始執(zhí)行數(shù)據(jù)恢復(fù)操作。

      所述對比結(jié)果包括:終端信息、數(shù)據(jù)類型信息、第一版本號(hào)信息以及差異數(shù)據(jù)。

      所述終端信息為所述終端的用戶信息。

      所述數(shù)據(jù)類型包括:聯(lián)系人、通話記錄、短信、記事本、鬧鈴、日歷和書簽。

      第一版本號(hào)為發(fā)起數(shù)據(jù)對比操作時(shí)的所述終端的所述數(shù)據(jù)類型的在所述MySQL數(shù)據(jù)庫中的版本號(hào)。.

      所述MySQL數(shù)據(jù)庫相當(dāng)于本發(fā)明第一實(shí)施例中的系統(tǒng)數(shù)據(jù)庫。所述MySQL數(shù)據(jù)庫位于所述云服務(wù)中,用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)。

      所述差異數(shù)據(jù)為所述終端的所述數(shù)據(jù)類型的第二版本號(hào)的數(shù)據(jù)相對于所述終端的所述數(shù)據(jù)類型的第一版本號(hào)的數(shù)據(jù)的新增數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)。

      所述第二版本號(hào)的數(shù)據(jù)存儲(chǔ)在所述云服務(wù)的Mongo數(shù)據(jù)庫中。

      所述Mongo數(shù)據(jù)庫相當(dāng)于所述本發(fā)明第一實(shí)施例中的備份數(shù)據(jù)庫,用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的各個(gè)版本號(hào)的數(shù)據(jù)。

      3)預(yù)處理模塊203,用于對所述數(shù)據(jù)恢復(fù)請求進(jìn)行預(yù)處理操作,判斷發(fā)送所述數(shù)據(jù)恢復(fù)請求的終端是否已在所述云服務(wù)中注冊,若是,則觸發(fā)加鎖模塊204;若否,則拒絕所述數(shù)據(jù)恢復(fù)請求。

      4)加鎖模塊204,用于判斷所述MySQL數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)是否已加鎖;

      若是,則說明所述最新版本的數(shù)據(jù)正在被使用或者正在進(jìn)行更新中,結(jié)束數(shù)據(jù)恢復(fù)操作;

      若否,則對所述最新版本號(hào)的數(shù)據(jù)進(jìn)行加鎖操作,以防止所述最新版本的數(shù)據(jù)在恢復(fù)過程中所述終端對所述最新版本的數(shù)據(jù)進(jìn)行修改、刪除或添加操作。

      5)判斷模塊205,用于判斷所述云服務(wù)的MySQL數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)是否與所述第一版本號(hào)相同;

      若是,則執(zhí)行數(shù)據(jù)恢復(fù)操作;

      若否,則說明所述MySQL數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)已發(fā)生變更,需要將所述最新版本號(hào)的數(shù)據(jù)與所述第二版本號(hào)的數(shù)據(jù)進(jìn)行重新對比。

      6)恢復(fù)模塊206,用于在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。

      具體的,恢復(fù)模塊206,包括:

      新增單元,用于將所述差異數(shù)據(jù)中的新增數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述新增數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      修改單元,用于將所述差異數(shù)據(jù)中的修改數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述修改數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      刪除單元,用于在所述最新版本的數(shù)據(jù)中查找所述差異數(shù)據(jù)中的刪除數(shù)據(jù),并將所述最新版本中的所述刪除數(shù)據(jù)的狀態(tài)標(biāo)識(shí)status標(biāo)記為0,與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      在云服務(wù)中,為每個(gè)數(shù)據(jù)庫中的數(shù)據(jù)設(shè)置專題標(biāo)識(shí)status,當(dāng)status=0時(shí),表示所述數(shù)據(jù)處于正常狀態(tài);當(dāng)status=1時(shí),表示刪除所述數(shù)據(jù)的內(nèi)容,但可對所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

      7)解鎖模塊207,用于當(dāng)所述數(shù)據(jù)恢復(fù)操作結(jié)束時(shí),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的恢復(fù)后的數(shù)據(jù)進(jìn)行解鎖操作。對所述最新版本的數(shù)據(jù)進(jìn)行加鎖和解鎖操作,是為了保證所述最新版本的數(shù)據(jù)在數(shù)據(jù)恢復(fù)過程中的一致性。

      如圖3所示,本發(fā)明第三實(shí)施例提出一種數(shù)據(jù)恢復(fù)的方法,具體包括以下步驟:

      步驟S301,從云服務(wù)的會(huì)話緩存中獲取對比結(jié)果,所述對比結(jié)果包括:終端信息、數(shù)據(jù)類型信息、第一版本號(hào)信息以及差異數(shù)據(jù)。

      所述終端信息為在所述云服務(wù)中注冊的終端用戶的信息。

      所述數(shù)據(jù)類型包括:聯(lián)系人、通話記錄、短信、記事本、鬧鈴、日歷和書簽。

      第一版本號(hào)為發(fā)起數(shù)據(jù)對比操作時(shí)的所述終端的所述數(shù)據(jù)類型的在所述系統(tǒng)數(shù)據(jù)庫中的版本號(hào)。

      所述差異數(shù)據(jù)為所述終端的所述數(shù)據(jù)類型的第二版本號(hào)的數(shù)據(jù)相對于所述終端的所述數(shù)據(jù)類型的第一版本號(hào)的數(shù)據(jù)的新增數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)。

      所述第二版本號(hào)的數(shù)據(jù)存儲(chǔ)在所述云服務(wù)的備份數(shù)據(jù)庫中。

      所述系統(tǒng)數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)。

      所述備份數(shù)據(jù)庫用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的各個(gè)版本號(hào)的數(shù)據(jù)。

      步驟S302,判斷所述云服務(wù)的系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)是否與所述第一版本號(hào)相同;

      若是,則執(zhí)行步驟S303,執(zhí)行數(shù)據(jù)恢復(fù)操作;

      若否,則說明所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)已發(fā)生變更,需要將所述最新版本號(hào)的數(shù)據(jù)與所述第二版本號(hào)的數(shù)據(jù)進(jìn)行重新對比。

      具體的,在步驟S302之前,所述方法還包括:

      當(dāng)接收到所述對比結(jié)果時(shí),判斷所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)是否已加鎖,若是,則說明所述最新版本的數(shù)據(jù)正在被使用或者正在進(jìn)行更新中,結(jié)束數(shù)據(jù)恢復(fù)操作;若否,則對所述最新版本號(hào)的數(shù)據(jù)進(jìn)行加鎖操作,以防止所述最新版本的數(shù)據(jù)在恢復(fù)過程中所述終端對所述最新版本的數(shù)據(jù)進(jìn)行修改、刪除或添加操作。

      步驟S303,在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。

      具體的,步驟S303,包括:

      將所述差異數(shù)據(jù)中的新增數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述新增數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      將所述差異數(shù)據(jù)中的修改數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述修改數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      在所述最新版本的數(shù)據(jù)中查找所述差異數(shù)據(jù)中的刪除數(shù)據(jù),并將所述最新版本中的所述刪除數(shù)據(jù)的狀態(tài)標(biāo)識(shí)status標(biāo)記為0,與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      在云服務(wù)中,為每個(gè)數(shù)據(jù)庫中的數(shù)據(jù)設(shè)置專題標(biāo)識(shí)status,當(dāng)status=0時(shí),表示所述數(shù)據(jù)處于正常狀態(tài);當(dāng)status=1時(shí),表示刪除所述數(shù)據(jù)的內(nèi)容,但可對所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

      進(jìn)一步的,所述方法還包括:

      當(dāng)所述數(shù)據(jù)恢復(fù)操作結(jié)束時(shí),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的恢復(fù)后的數(shù)據(jù)進(jìn)行解鎖操作。對所述最新版本的數(shù)據(jù)進(jìn)行加鎖和解鎖操作,是為了保證所述最新版本的數(shù)據(jù)在數(shù)據(jù)恢復(fù)過程中的一致性。

      如圖4所示,本發(fā)明第四實(shí)施例提出一種數(shù)據(jù)恢復(fù)的方法,具體包括以下步驟:

      步驟S401:云服務(wù)接收終端發(fā)送來的數(shù)據(jù)恢復(fù)請求信息,所述數(shù)據(jù)恢復(fù)請求信息包括:對比結(jié)果索引信息。

      步驟S402,所述云服務(wù)根據(jù)所述數(shù)據(jù)恢復(fù)請求信息中的對比結(jié)果索引信息從所述云服務(wù)的會(huì)話緩存中獲取與之對應(yīng)的對比結(jié)果,開始執(zhí)行數(shù)據(jù)恢復(fù)操作。

      所述對比結(jié)果包括:終端信息、數(shù)據(jù)類型信息、第一版本號(hào)信息以及差異數(shù)據(jù)。

      所述終端信息為所述終端的用戶信息。

      所述數(shù)據(jù)類型包括:聯(lián)系人、通話記錄、短信、記事本、鬧鈴、日歷和書簽。

      第一版本號(hào)為發(fā)起數(shù)據(jù)對比操作時(shí)的所述終端的所述數(shù)據(jù)類型的在所述MySQL數(shù)據(jù)庫中的版本號(hào)。.

      所述MySQL數(shù)據(jù)庫相當(dāng)于本發(fā)明第一實(shí)施例和第三實(shí)施例中的系統(tǒng)數(shù)據(jù)庫。所述MySQL數(shù)據(jù)庫位于所述云服務(wù)中,用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)。

      所述差異數(shù)據(jù)為所述終端的所述數(shù)據(jù)類型的第二版本號(hào)的數(shù)據(jù)相對于所述終端的所述數(shù)據(jù)類型的第一版本號(hào)的數(shù)據(jù)的新增數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)。

      所述第二版本號(hào)的數(shù)據(jù)存儲(chǔ)在所述云服務(wù)的Mongo數(shù)據(jù)庫中。

      所述Mongo數(shù)據(jù)庫相當(dāng)于所述本發(fā)明第一實(shí)施例和第三實(shí)施例中的備份數(shù)據(jù)庫,用于存儲(chǔ)所述云服務(wù)中的各個(gè)終端的各種數(shù)據(jù)類型的各個(gè)版本號(hào)的數(shù)據(jù)。

      步驟S403,所述云服務(wù)對所述數(shù)據(jù)恢復(fù)請求進(jìn)行預(yù)處理操作,判斷發(fā)送所述數(shù)據(jù)恢復(fù)請求的終端是否已在所述云服務(wù)中注冊,若是,則執(zhí)行步驟S404;若否,則拒絕所述數(shù)據(jù)恢復(fù)請求。

      步驟S404,判斷所述MySQL數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)是否已加鎖;

      若是,則恢復(fù)失敗,說明所述最新版本的數(shù)據(jù)正在數(shù)據(jù)同步中,請稍后再更新數(shù)據(jù)

      若否,則執(zhí)行步驟S405。

      步驟S405,對所述最新版本號(hào)的數(shù)據(jù)進(jìn)行加鎖操作,以防止所述最新版本的數(shù)據(jù)在恢復(fù)過程中所述終端對所述最新版本的數(shù)據(jù)進(jìn)行修改、刪除或添加操作。

      步驟S406,判斷所述云服務(wù)的MySQL數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)是否與所述第一版本號(hào)相同;

      若是,則執(zhí)行步驟S407;

      若否,則恢復(fù)失敗,終端數(shù)據(jù)已變更,請重新比對數(shù)據(jù);說明所述MySQL數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)已發(fā)生變更,需要將所述最新版本號(hào)的數(shù)據(jù)與所述第二版本號(hào)的數(shù)據(jù)進(jìn)行重新對比。

      恢復(fù)失敗,提示用戶數(shù)據(jù)已變更,請重新比對數(shù)據(jù)

      步驟S407,在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的最新版本號(hào)的數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。

      具體的,步驟S407,包括:

      將所述差異數(shù)據(jù)中的新增數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述新增數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      將所述差異數(shù)據(jù)中的修改數(shù)據(jù)添加到所述最新版本的數(shù)據(jù)中,并為所述修改數(shù)據(jù)設(shè)置小版本號(hào),與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      在所述最新版本的數(shù)據(jù)中查找所述差異數(shù)據(jù)中的刪除數(shù)據(jù),并將所述最新版本中的所述刪除數(shù)據(jù)的狀態(tài)標(biāo)識(shí)status標(biāo)記為0,與此同時(shí),在所述最新版本號(hào)的基礎(chǔ)上加1,形成新的最新版本號(hào)。

      在云服務(wù)中,為每個(gè)數(shù)據(jù)庫中的數(shù)據(jù)設(shè)置專題標(biāo)識(shí)status,當(dāng)status=0時(shí),表示所述數(shù)據(jù)處于正常狀態(tài);當(dāng)status=1時(shí),表示刪除所述數(shù)據(jù)的內(nèi)容,但可對所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

      步驟S408,當(dāng)所述數(shù)據(jù)恢復(fù)操作結(jié)束時(shí),對所述系統(tǒng)數(shù)據(jù)庫中的所述終端的所述數(shù)據(jù)類型的恢復(fù)后的數(shù)據(jù)進(jìn)行解鎖操作。對所述最新版本的數(shù)據(jù)進(jìn)行加鎖和解鎖操作,是為了保證所述最新版本的數(shù)據(jù)在數(shù)據(jù)恢復(fù)過程中的一致性。

      需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。

      上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

      通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。

      以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1