本公開涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)恢復(fù)方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,網(wǎng)站應(yīng)用規(guī)模的不斷擴大,常規(guī)的框架已無法應(yīng)對,分布式框架勢在必行。目前,服務(wù)一般采用分布式框架,在服務(wù)端進行數(shù)據(jù)操作時,經(jīng)常會涉及到數(shù)據(jù)庫操作或者消息隊列操作。而在數(shù)據(jù)操作的過程中,經(jīng)常會出現(xiàn)數(shù)據(jù)庫寫入失敗或者消息隊列寫入失敗等錯誤。當(dāng)出現(xiàn)錯誤時,需要能夠追蹤到具體出錯的數(shù)據(jù),例如出錯的機器和出錯的內(nèi)容,并能夠快速對出錯的數(shù)據(jù)進行恢復(fù),以提高服務(wù)的穩(wěn)定性。
因此,迫切需要提供一種可以快速對出錯數(shù)據(jù)進行恢復(fù)的技術(shù)方案。
技術(shù)實現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本公開提供一種數(shù)據(jù)恢復(fù)方法及系統(tǒng)。
根據(jù)本公開實施例的第一方面,提供一種數(shù)據(jù)恢復(fù)方法,包括:
生成數(shù)據(jù)處理日志;
對所述數(shù)據(jù)處理日志進行分類預(yù)處理,得到預(yù)處理數(shù)據(jù),所述預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù);
根據(jù)所述預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),并對所述待恢復(fù)數(shù)據(jù)進行恢復(fù)。
在一實施例中,所述對所述數(shù)據(jù)處理日志進行分類預(yù)處理,包括:
根據(jù)預(yù)先配置的日志優(yōu)先級與存儲方式的第一對應(yīng)關(guān)系對所述數(shù)據(jù)處理日志進行分級存儲;
根據(jù)預(yù)先配置的存儲方式與分類處理方式的第二對應(yīng)關(guān)系對分級存儲的所述數(shù)據(jù)處理日志進行分類處理。
在一實施例中,所述根據(jù)預(yù)先配置的日志優(yōu)先級與存儲方式的第一對應(yīng)關(guān)系對所述數(shù)據(jù)處理日志進行分級存儲,包括:若接收的所述數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第一預(yù)設(shè)優(yōu)先級,則將所述數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫或內(nèi)存中,若接收的所述數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第二預(yù)設(shè)優(yōu)先級,則將所述數(shù)據(jù)處理日志存儲在文本文件中;或者
所述根據(jù)預(yù)先配置的存儲方式與分類處理方式的第二對應(yīng)關(guān)系對分級存儲的所述數(shù)據(jù)處理日志進行分類處理,包括:若所述數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫中,則對日志內(nèi)容進行格式轉(zhuǎn)換或語句轉(zhuǎn)換,若所述數(shù)據(jù)處理日志存儲在非數(shù)據(jù)庫中,則對日志內(nèi)容進行格式轉(zhuǎn)換。
在一實施例中,所述對所述待恢復(fù)數(shù)據(jù)進行恢復(fù),包括:
根據(jù)預(yù)先配置的所述待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對所述待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。
在一實施例中,所述根據(jù)預(yù)先配置的所述待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對所述待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù),包括:
若所述待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第一預(yù)設(shè)級別,則根據(jù)格式轉(zhuǎn)換后的日志內(nèi)容恢復(fù)所述待恢復(fù)數(shù)據(jù);
若所述待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第二預(yù)設(shè)級別,則執(zhí)行轉(zhuǎn)換后的語句,以恢復(fù)所述待恢復(fù)數(shù)據(jù);
若所述待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量大于或等于預(yù)設(shè)數(shù)量,則將所述待恢復(fù)數(shù)據(jù)緩存在數(shù)據(jù)隊列中,然后根據(jù)所述待恢復(fù)數(shù)據(jù)的級別恢復(fù)所述待恢復(fù)數(shù)據(jù)。
在一實施例中,所述方法還包括:
配置和/或更新配置所述第一對應(yīng)關(guān)系、所述第二對應(yīng)關(guān)系和所述第三對應(yīng)關(guān)系中的至少一項。
根據(jù)本公開實施例的第二方面,提供一種數(shù)據(jù)恢復(fù)系統(tǒng),包括:
至少一個服務(wù)節(jié)點,被配置為生成數(shù)據(jù)處理日志,并向數(shù)據(jù)收集節(jié)點發(fā)送所述數(shù)據(jù)處理日志;
所述數(shù)據(jù)收集節(jié)點,被配置為接收所述數(shù)據(jù)處理日志,對所述數(shù)據(jù)處理日志進行分類預(yù)處理,得到預(yù)處理數(shù)據(jù),并向中心協(xié)調(diào)節(jié)點發(fā)送數(shù)據(jù)恢復(fù)消息,其中,所述預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù);
所述中心協(xié)調(diào)節(jié)點,被配置為接收所述數(shù)據(jù)恢復(fù)消息,根據(jù)所述數(shù)據(jù)恢復(fù)消息獲得所述預(yù)處理數(shù)據(jù),并向數(shù)據(jù)恢復(fù)節(jié)點發(fā)送所述預(yù)處理數(shù)據(jù);
所述數(shù)據(jù)恢復(fù)節(jié)點,被配置為接收所述預(yù)處理數(shù)據(jù),根據(jù)所述預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),并對所述待恢復(fù)數(shù)據(jù)進行恢復(fù)。
在一實施例中,所述數(shù)據(jù)收集節(jié)點包括:
分級存儲模塊,被配置為根據(jù)預(yù)先配置的日志優(yōu)先級與存儲方式的第一對應(yīng)關(guān)系對所述數(shù)據(jù)處理日志進行分級存儲;
分類處理模塊,被配置為根據(jù)預(yù)先配置的存儲方式與分類處理方式的第二對應(yīng)關(guān)系對所述分級存儲模塊分級存儲的所述數(shù)據(jù)處理日志進行分類處理。
在一實施例中,所述分級存儲模塊,被配置為若接收的所述數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第一預(yù)設(shè)優(yōu)先級,則將所述數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫或內(nèi)存中,若接收的所述數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第二預(yù)設(shè)優(yōu)先級,則將所述數(shù)據(jù)處理日志存儲在文本文件中;或者
所述分類處理模塊,被配置為若所述數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫中,則對日志內(nèi)容進行格式轉(zhuǎn)換或語句轉(zhuǎn)換,若所述數(shù)據(jù)處理日志存儲在非數(shù)據(jù)庫中,則對日志內(nèi)容進行格式轉(zhuǎn)換。
在一實施例中,所述數(shù)據(jù)恢復(fù)節(jié)點,被配置為根據(jù)預(yù)先配置的所述待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對所述待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。
在一實施例中,所述數(shù)據(jù)恢復(fù)節(jié)點包括:
第一恢復(fù)模塊,被配置為若所述待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第一預(yù)設(shè)級別,則根據(jù)格式轉(zhuǎn)換后的日志內(nèi)容恢復(fù)所述待恢復(fù)數(shù)據(jù);
第二恢復(fù)模塊,被配置為若所述待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第二預(yù)設(shè)級別,則執(zhí)行轉(zhuǎn)換后的語句,以恢復(fù)所述待恢復(fù)數(shù)據(jù);
第三恢復(fù)模塊,被配置為若所述待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量大于或等于預(yù)設(shè)數(shù)量,則將所述待恢復(fù)數(shù)據(jù)緩存在數(shù)據(jù)隊列中,然后根據(jù)所述待恢復(fù)數(shù)據(jù)的級別恢復(fù)所述待恢復(fù)數(shù)據(jù)。
在一實施例中,所述中心協(xié)調(diào)節(jié)點,還被配置為為所述數(shù)據(jù)收集節(jié)點配置和/或更新配置所述第一對應(yīng)關(guān)系和所述第二對應(yīng)關(guān)系,以及為所述數(shù)據(jù)恢復(fù)節(jié)點配置和/或更新配置所述第三對應(yīng)關(guān)系。
在一實施例中,所述數(shù)據(jù)收集節(jié)點,還被配置為為所述中心協(xié)調(diào)節(jié)點提供第一接口;
所述數(shù)據(jù)恢復(fù)節(jié)點,還被配置為為所述中心協(xié)調(diào)節(jié)點提供第二接口;
所述中心協(xié)調(diào)節(jié)點,被配置為通過所述第一接口為所述數(shù)據(jù)收集節(jié)點配置和/或更新配置所述第一對應(yīng)關(guān)系和所述第二對應(yīng)關(guān)系,以及通過所述第二接口為所述數(shù)據(jù)恢復(fù)節(jié)點配置和/或更新配置所述第三對應(yīng)關(guān)系。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:通過對數(shù)據(jù)處理日志進行分類預(yù)處理,使得預(yù)處理數(shù)據(jù)包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),并根據(jù)預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),由于待恢復(fù)數(shù)據(jù)位于預(yù)處理數(shù)據(jù)中,即待恢復(fù)數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),因此可以達到快速恢復(fù)數(shù)據(jù)的目的。
通過對數(shù)據(jù)處理日志進行分級存儲和分類處理,使得預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),從而為快速恢復(fù)數(shù)據(jù)提供了條件。
通過描述分級存儲的內(nèi)容和分類處理的內(nèi)容,使得方案更清楚。
根據(jù)預(yù)先配置的所述待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對所述待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù),可以對不同屬性的待恢復(fù)數(shù)據(jù)進行不同的處理。
根據(jù)待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量和級別進行數(shù)據(jù)恢復(fù),既能滿足快速入庫的需求,又能保證入庫的安全性。
可以靈活、動態(tài)地配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系,從而為快速、安全地恢復(fù)數(shù)據(jù)提供條件。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種數(shù)據(jù)恢復(fù)系統(tǒng)的框圖。
圖2是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)系統(tǒng)的框圖。
圖3是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)系統(tǒng)的框圖。
圖4是根據(jù)一示例性實施例示出的一種數(shù)據(jù)恢復(fù)方法的流程圖。
圖5是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)方法的流程圖。
圖6是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)方法的流程圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種數(shù)據(jù)恢復(fù)系統(tǒng)的框圖,如圖1所示,該系統(tǒng)包括:至少一個服務(wù)節(jié)點11、數(shù)據(jù)收集節(jié)點12、中心協(xié)調(diào)節(jié)點13和數(shù)據(jù)恢復(fù)節(jié)點14。
至少一個服務(wù)節(jié)點11被配置為生成數(shù)據(jù)處理日志,并向數(shù)據(jù)收集節(jié)點12發(fā)送數(shù)據(jù)處理日志。
在該實施例中,當(dāng)有數(shù)據(jù)操作時,服務(wù)節(jié)點11可以生成數(shù)據(jù)處理日志。
數(shù)據(jù)收集節(jié)點12被配置為接收數(shù)據(jù)處理日志,對數(shù)據(jù)處理日志進行分類預(yù)處理,得到預(yù)處理數(shù)據(jù),并向中心協(xié)調(diào)節(jié)點13發(fā)送數(shù)據(jù)恢復(fù)消息,其中,預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù)。
其中,預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)可以包括但不局限于輕量級的數(shù)據(jù)交換格式JSON格式,預(yù)處理數(shù)據(jù)中包含的語句可以包括但局限于結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)語句。
中心協(xié)調(diào)節(jié)點13被配置為接收數(shù)據(jù)恢復(fù)消息,根據(jù)數(shù)據(jù)恢復(fù)消息獲得預(yù)處理數(shù)據(jù),并向數(shù)據(jù)恢復(fù)節(jié)點14發(fā)送預(yù)處理數(shù)據(jù)。
數(shù)據(jù)恢復(fù)節(jié)點14被配置為接收預(yù)處理數(shù)據(jù),根據(jù)預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),并對待恢復(fù)數(shù)據(jù)進行恢復(fù)。
在該實施例中,數(shù)據(jù)恢復(fù)節(jié)點14在接收到預(yù)處理數(shù)據(jù)后,可以將預(yù)處理數(shù)據(jù)和預(yù)存的基準(zhǔn)數(shù)據(jù)進行比較,以確定出待恢復(fù)數(shù)據(jù),并可以根據(jù)預(yù)先配置的待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。由于待恢復(fù)數(shù)據(jù)位于預(yù)處理數(shù)據(jù)中,即待恢復(fù)數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),因此數(shù)據(jù)恢復(fù)節(jié)點14可以快速地恢復(fù)數(shù)據(jù)。
上述系統(tǒng)實施例,通過對數(shù)據(jù)處理日志進行分類預(yù)處理,使得預(yù)處理數(shù)據(jù)包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),并根據(jù)預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),由于待恢復(fù)數(shù)據(jù)位于預(yù)處理數(shù)據(jù)中,即待恢復(fù)數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),因此可以達到快速恢復(fù)數(shù)據(jù)的目的。
圖2是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)系統(tǒng)的框圖,如圖2所示,在圖1所示實施例的基礎(chǔ)上,數(shù)據(jù)收集節(jié)點12可以包括:分級存儲模塊121和分類處理模塊122。
分級存儲模塊121被配置為根據(jù)預(yù)先配置的日志優(yōu)先級與存儲方式的第一對應(yīng)關(guān)系對數(shù)據(jù)處理日志進行分級存儲。
分類處理模塊122被配置為根據(jù)預(yù)先配置的存儲方式與分類處理方式的第二對應(yīng)關(guān)系對分級存儲模塊121分級存儲的數(shù)據(jù)處理日志進行分類處理。
在該實施例中,分級存儲模塊121可以被配置為若接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第一預(yù)設(shè)優(yōu)先級,則將數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫或內(nèi)存中,若接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第二預(yù)設(shè)優(yōu)先級,則將數(shù)據(jù)處理日志存儲在文本文件中。
假設(shè)數(shù)據(jù)處理日志共有七個優(yōu)先級,當(dāng)接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第七優(yōu)先級即高優(yōu)先級時,可以將數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫或內(nèi)存中,當(dāng)接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第一優(yōu)先級即低優(yōu)先級時,可以將數(shù)據(jù)處理日志存儲在文本文件中。
在該實施例中,分類處理模塊122可以被配置為若數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫中,則可以對日志內(nèi)容進行格式轉(zhuǎn)換或語句轉(zhuǎn)換,若數(shù)據(jù)處理日志存儲在非數(shù)據(jù)庫中,則可以對日志內(nèi)容進行格式轉(zhuǎn)換。
其中,對日志內(nèi)容進行格式轉(zhuǎn)換可以為將日志內(nèi)容轉(zhuǎn)換為JSON格式,對日志內(nèi)容進行語句轉(zhuǎn)換可以為將日志內(nèi)容轉(zhuǎn)換為SQL語句。
上述實施例,通過對數(shù)據(jù)處理日志進行分級存儲和分類處理,使得預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),從而為快速恢復(fù)數(shù)據(jù)提供了條件。
在另一實施例中,中心協(xié)調(diào)節(jié)點13可以被配置為為數(shù)據(jù)收集節(jié)點12配置日志優(yōu)先級與存儲方式的第一對應(yīng)關(guān)系和存儲方式與分類處理方式的第二對應(yīng)關(guān)系,以及為數(shù)據(jù)恢復(fù)節(jié)點14配置待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系。另外,中心協(xié)調(diào)節(jié)點13還可以更新配置即可以動態(tài)配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系。
其中,可以通過多種方式配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系。例如,可以通過協(xié)議配置,也可以通過接口配置。
假設(shè)通過接口配置,則數(shù)據(jù)收集節(jié)點12可以被配置為為中心協(xié)調(diào)節(jié)點13提供第一接口,數(shù)據(jù)恢復(fù)節(jié)點14可以被配置為為中心協(xié)調(diào)節(jié)點13提供第二接口,而中心協(xié)調(diào)節(jié)點13可以被配置為通過第一接口為數(shù)據(jù)收集節(jié)點12動態(tài)配置第一對應(yīng)關(guān)系和第二對應(yīng)關(guān)系,以及通過第二接口為數(shù)據(jù)恢復(fù)節(jié)點14動態(tài)配置第三對應(yīng)關(guān)系。
由此可見,中心協(xié)調(diào)節(jié)點13可以動態(tài)控制數(shù)據(jù)收集節(jié)點12及數(shù)據(jù)恢復(fù)節(jié)點13,并結(jié)合當(dāng)前待恢復(fù)數(shù)據(jù)的特點靈活配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系。
在該實施例中,數(shù)據(jù)恢復(fù)節(jié)點14可以被配置為根據(jù)預(yù)先配置的第三對應(yīng)關(guān)系對待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。如圖3所示,數(shù)據(jù)恢復(fù)節(jié)點14可以包括:第一恢復(fù)模塊141、第二恢復(fù)模塊142和第三恢復(fù)模塊143。
第一恢復(fù)模塊141被配置為若待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第一預(yù)設(shè)級別,則根據(jù)格式轉(zhuǎn)換后的日志內(nèi)容恢復(fù)待恢復(fù)數(shù)據(jù)。
第二恢復(fù)模塊142被配置為若待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第二預(yù)設(shè)級別,則執(zhí)行轉(zhuǎn)換后的語句,以恢復(fù)待恢復(fù)數(shù)據(jù)。
第三恢復(fù)模塊143被配置為若待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量大于或等于預(yù)設(shè)數(shù)量,則將待恢復(fù)數(shù)據(jù)緩存在數(shù)據(jù)隊列中,然后根據(jù)待恢復(fù)數(shù)據(jù)的級別恢復(fù)待恢復(fù)數(shù)據(jù)。
其中,預(yù)設(shè)數(shù)量可以根據(jù)需要設(shè)置,例如1000條、3000條等,第一預(yù)設(shè)級別可以為數(shù)據(jù)一致性檢查要求較高的級別,第二預(yù)設(shè)級別可以為數(shù)據(jù)入庫優(yōu)先級較高的級別。
假設(shè)待恢復(fù)數(shù)據(jù)的一致性檢查要求較高且數(shù)據(jù)量小于預(yù)設(shè)數(shù)量,則第一恢復(fù)模塊141可以分配CPU等資源,接收JSON數(shù)據(jù)對象,并在入庫前,根據(jù)JSON對象的內(nèi)容做一致性檢查;假設(shè)待恢復(fù)數(shù)據(jù)的入庫優(yōu)先級較高數(shù)據(jù)量小于預(yù)設(shè)數(shù)量,則第二恢復(fù)模塊142可以接收SQL語句,分配磁盤容量等資源,并執(zhí)行SQL語句以對該部分數(shù)據(jù)直接進行快速入庫;如果待恢復(fù)數(shù)據(jù)的優(yōu)先級一般,數(shù)據(jù)量一般,也可采用上述方式;如果待恢復(fù)數(shù)據(jù)的優(yōu)先級一般,但數(shù)據(jù)量很大,則第三恢復(fù)模塊143可以先將待恢復(fù)數(shù)據(jù)緩存在數(shù)據(jù)隊列中,并進行異步分析,然后根據(jù)待恢復(fù)數(shù)據(jù)的級別恢復(fù)數(shù)據(jù)。
上述實施例,根據(jù)待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量和級別進行數(shù)據(jù)恢復(fù),既能滿足快速入庫的需求,又能保證入庫的安全性。
圖4是根據(jù)一示例性實施例示出的一種數(shù)據(jù)恢復(fù)方法的流程圖,如圖4所示,該數(shù)據(jù)恢復(fù)方法可以應(yīng)用但不局限于圖1所示的系統(tǒng)上,該數(shù)據(jù)恢復(fù)方法包括以下步驟S401-S403:
在步驟S401中,生成數(shù)據(jù)處理日志。
在步驟S402中,對數(shù)據(jù)處理日志進行分類預(yù)處理,得到預(yù)處理數(shù)據(jù),該預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù)。
其中,預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)可以包括但不局限于輕量級的數(shù)據(jù)交換格式JSON格式,預(yù)處理數(shù)據(jù)中包含的語句可以包括但局限于結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)語句。
在步驟S403中,根據(jù)預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),并對待恢復(fù)數(shù)據(jù)進行恢復(fù)。
在該實施例中,在接收到預(yù)處理數(shù)據(jù)后,可以將預(yù)處理數(shù)據(jù)和預(yù)存的基準(zhǔn)數(shù)據(jù)進行比較,以確定出待恢復(fù)數(shù)據(jù),并可以根據(jù)預(yù)先配置的待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。由于待恢復(fù)數(shù)據(jù)位于預(yù)處理數(shù)據(jù)中,即待恢復(fù)數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),因此可以快速地恢復(fù)數(shù)據(jù)。
上述方法實施例,通過對數(shù)據(jù)處理日志進行分類預(yù)處理,使得預(yù)處理數(shù)據(jù)包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),并根據(jù)預(yù)處理數(shù)據(jù)確定出待恢復(fù)數(shù)據(jù),由于待恢復(fù)數(shù)據(jù)位于預(yù)處理數(shù)據(jù)中,即待恢復(fù)數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),因此可以達到快速恢復(fù)數(shù)據(jù)的目的。
圖5是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)方法的流程圖,如圖5所示,該方法包括如下步驟:
在步驟S501中,生成數(shù)據(jù)處理日志。
在步驟S502中,根據(jù)預(yù)先配置的日志優(yōu)先級與存儲方式的第一對應(yīng)關(guān)系對數(shù)據(jù)處理日志進行分級存儲。
在該實施例中,若接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第一預(yù)設(shè)優(yōu)先級,則將數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫或內(nèi)存中,若接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第二預(yù)設(shè)優(yōu)先級,則將數(shù)據(jù)處理日志存儲在文本文件中。
假設(shè)數(shù)據(jù)處理日志共有七個優(yōu)先級,當(dāng)接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第七優(yōu)先級即高優(yōu)先級時,可以將數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫或內(nèi)存中,當(dāng)接收的數(shù)據(jù)處理日志對應(yīng)的日志優(yōu)先級為第一優(yōu)先級即低優(yōu)先級時,可以將數(shù)據(jù)處理日志存儲在文本文件中。
在步驟S503中,根據(jù)預(yù)先配置的存儲方式與分類處理方式的第二對應(yīng)關(guān)系對分級存儲的數(shù)據(jù)處理日志進行分類處理。
在該實施例中,若數(shù)據(jù)處理日志存儲在數(shù)據(jù)庫中,則可以對日志內(nèi)容進行格式轉(zhuǎn)換或語句轉(zhuǎn)換,若數(shù)據(jù)處理日志存儲在非數(shù)據(jù)庫中,則可以對日志內(nèi)容進行格式轉(zhuǎn)換。
其中,對日志內(nèi)容進行格式轉(zhuǎn)換可以為將日志內(nèi)容轉(zhuǎn)換為JSON格式,對日志內(nèi)容進行語句轉(zhuǎn)換可以為將日志內(nèi)容轉(zhuǎn)換為SQL語句。
在步驟S504中,根據(jù)預(yù)先配置的待恢復(fù)數(shù)據(jù)的屬性和處理方式的第三對應(yīng)關(guān)系對待恢復(fù)數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。
在該實施例中,若待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第一預(yù)設(shè)級別,則可以根據(jù)格式轉(zhuǎn)換后的日志內(nèi)容恢復(fù)待恢復(fù)數(shù)據(jù)。若待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量小于預(yù)設(shè)數(shù)量且級別為第二預(yù)設(shè)級別,則可以執(zhí)行轉(zhuǎn)換后的語句例如SQL語句,以恢復(fù)待恢復(fù)數(shù)據(jù)。若待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量大于或等于預(yù)設(shè)數(shù)量,則將待恢復(fù)數(shù)據(jù)緩存在數(shù)據(jù)隊列中,然后根據(jù)待恢復(fù)數(shù)據(jù)的級別恢復(fù)待恢復(fù)數(shù)據(jù)。
其中,預(yù)設(shè)數(shù)量可以根據(jù)需要設(shè)置,例如1000條、3000條等,第一預(yù)設(shè)級別可以為數(shù)據(jù)一致性檢查要求較高的級別,第二預(yù)設(shè)級別可以為數(shù)據(jù)入庫優(yōu)先級較高的級別。
假設(shè)待恢復(fù)數(shù)據(jù)的一致性檢查要求較高且數(shù)據(jù)量小于預(yù)設(shè)數(shù)量,則可以分配CPU等資源,接收JSON數(shù)據(jù)對象,并在入庫前,根據(jù)JSON對象的內(nèi)容做一致性檢查;假設(shè)待恢復(fù)數(shù)據(jù)的入庫優(yōu)先級較高數(shù)據(jù)量小于預(yù)設(shè)數(shù)量,則可以接收SQL語句,分配磁盤容量等資源,并執(zhí)行SQL語句以對該部分數(shù)據(jù)直接進行快速入庫;如果待恢復(fù)數(shù)據(jù)的優(yōu)先級一般,數(shù)據(jù)量一般,也可采用上述方式;如果待恢復(fù)數(shù)據(jù)的優(yōu)先級一般,但數(shù)據(jù)量很大,則可以先將待恢復(fù)數(shù)據(jù)緩存在數(shù)據(jù)隊列中,并進行異步分析,然后根據(jù)待恢復(fù)數(shù)據(jù)的級別恢復(fù)數(shù)據(jù)。
上述方法實施例,通過對數(shù)據(jù)處理日志進行分級存儲和分類處理,使得預(yù)處理數(shù)據(jù)中包含的數(shù)據(jù)結(jié)構(gòu)或語句能夠用于直接恢復(fù)數(shù)據(jù),從而為快速恢復(fù)數(shù)據(jù)提供了條件,同時,根據(jù)待恢復(fù)數(shù)據(jù)的數(shù)據(jù)量和級別進行數(shù)據(jù)恢復(fù),既能滿足快速入庫的需求,又能保證入庫的安全性。
圖6是根據(jù)一示例性實施例示出的另一種數(shù)據(jù)恢復(fù)方法的流程圖,如圖6所示,在上述步驟S501之前,該方法還可以包括如下步驟:
步驟S500,配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系。
其中,可以通過多種方式配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系。例如,可以通過協(xié)議配置,也可以通過接口配置。
另外,還可以更新配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系。
上述方法實施例,可以靈活、動態(tài)地配置第一對應(yīng)關(guān)系、第二對應(yīng)關(guān)系和第三對應(yīng)關(guān)系,從而為快速、安全地恢復(fù)數(shù)據(jù)提供條件。
本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的公開后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。