欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

文檔序號(hào):12120310閱讀:341來(lái)源:國(guó)知局
一種數(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ぷ骱蜕畹闹匾ぞ?,被人們使用的頻率越來(lái)越高。用戶在使用終端的過(guò)程中,會(huì)在終端中產(chǎn)生各種各樣的數(shù)據(jù),比如照片、視頻文件、聯(lián)系人等數(shù)據(jù)。隨著時(shí)間的積累,終端中存儲(chǔ)的數(shù)據(jù)越來(lái)越多,而終端的存儲(chǔ)容量是有限的,所以,很多用戶通過(guò)云服務(wù)將終端中的數(shù)據(jù)進(jìn)行備份。為了防止數(shù)據(jù)丟失,目前大多數(shù)云服務(wù)已具備數(shù)據(jù)自動(dòng)備份的功能,云服務(wù)會(huì)定期將系統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)備份到備份數(shù)據(jù)庫(kù)中,一旦系統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)丟失,可利用備份數(shù)據(jù)庫(kù)中的備份數(shù)據(jù)對(duì)系統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行恢復(fù)。但是,如果將備份數(shù)據(jù)庫(kù)中的全部備份數(shù)據(jù)都恢復(fù)到系統(tǒng)數(shù)據(jù)庫(kù)中,恢復(fù)時(shí)間較長(zhǎng)、效率較差。



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

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

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

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

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

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

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

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

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

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

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

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

所述裝置,還包括:

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

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

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

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

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

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

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

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

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

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

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

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

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

附圖說(shuō)明

圖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)一步說(shuō)明。

具體實(shí)施方式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3)恢復(fù)模塊103,用于在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對(duì)所述系統(tǒng)數(shù)據(jù)庫(kù)中的所述終端的所述數(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ù)庫(kù)中的數(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)容,但可對(duì)所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6)恢復(fù)模塊206,用于在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對(duì)所述系統(tǒng)數(shù)據(jù)庫(kù)中的所述終端的所述數(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ù)庫(kù)中的數(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)容,但可對(duì)所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

步驟S303,在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對(duì)所述系統(tǒng)數(shù)據(jù)庫(kù)中的所述終端的所述數(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ù)庫(kù)中的數(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)容,但可對(duì)所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

步驟S407,在所述最新版本號(hào)與所述第一版本號(hào)相同的情況下,根據(jù)所述差異數(shù)據(jù),對(duì)所述系統(tǒng)數(shù)據(jù)庫(kù)中的所述終端的所述數(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ù)庫(kù)中的數(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)容,但可對(duì)所述數(shù)據(jù)進(jìn)行恢復(fù)操作;當(dāng)status=2時(shí),表示徹底刪除所述數(shù)據(jù),且不能進(jìn)行恢復(fù)操作。

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

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

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

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

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

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
酒泉市| 新巴尔虎左旗| 包头市| 余姚市| 扶余县| 扬中市| 顺昌县| 哈尔滨市| 磴口县| 新邵县| 哈巴河县| 亳州市| 磐安县| 达拉特旗| 邹城市| 富源县| 沙雅县| 盖州市| 通山县| 宁津县| 泸州市| 大厂| 大渡口区| 土默特左旗| 黄梅县| 崇明县| 五常市| 永仁县| 三河市| 囊谦县| 焦作市| 军事| 中方县| 华容县| 进贤县| 晋城| 普定县| 呼图壁县| 翁牛特旗| 巴楚县| 清苑县|