數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)庫變得日益重要。然而隨著數(shù)據(jù)庫業(yè)務(wù)迭代的增加,數(shù)據(jù)庫的故障概率也隨之增加。而數(shù)據(jù)庫出現(xiàn)故障會對業(yè)務(wù)造成很大的影響,因此當(dāng)數(shù)據(jù)庫出現(xiàn)故障時,如何快速有效的恢復(fù)數(shù)據(jù)庫變得尤為重要。
[0003]目前,業(yè)內(nèi)往往是通過全量快照和人工追加變更日志的方式來實現(xiàn)數(shù)據(jù)庫的恢復(fù)。但是由于數(shù)據(jù)庫中存在大量數(shù)據(jù),上述方法恢復(fù)數(shù)據(jù)庫就會存在以下問題:①效率低,由于數(shù)據(jù)庫中的數(shù)據(jù)量很大,恢復(fù)全量數(shù)據(jù)非常慢,追加全量變更日志的效率也低,恢復(fù)效率非常低恢復(fù)代價大,由于需要恢復(fù)全量數(shù)據(jù),占用磁盤空間很大,往往需要使用額外的機器資源完成數(shù)據(jù)恢復(fù),而且數(shù)據(jù)恢復(fù)過程中需要數(shù)據(jù)庫維護(hù)人員的全程參與,恢復(fù)成本較高恢復(fù)數(shù)據(jù)粒度單一,只支持全部數(shù)據(jù)一塊恢復(fù),無法針對故障數(shù)據(jù)部分完成數(shù)據(jù)恢復(fù)。因此,現(xiàn)在亟需一種快速有效的數(shù)據(jù)庫恢復(fù)方法來滿足數(shù)據(jù)庫恢復(fù)到任意目標(biāo)時刻的需求。
【發(fā)明內(nèi)容】
[0004]本申請的目的在于提出一種改進(jìn)的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法和系統(tǒng),來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0005]第一方面,本申請?zhí)峁┝艘环N數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法,所述方法包括:接收故障數(shù)據(jù)恢復(fù)請求信息,其中,所述故障數(shù)據(jù)恢復(fù)請求信息包括故障數(shù)據(jù)的標(biāo)識信息和目標(biāo)恢復(fù)時間信息;基于所述故障數(shù)據(jù)的標(biāo)識信息在所述數(shù)據(jù)庫的第一快照中獲取所述故障數(shù)據(jù)的備份文件;獲取所述故障數(shù)據(jù)的增量日志,其中,所述故障數(shù)據(jù)的增量日志包括所述故障數(shù)據(jù)在所述第一快照的快照時刻和所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的變化信息;以及基于所述故障數(shù)據(jù)的備份文件和所述故障數(shù)據(jù)的增量日志,恢復(fù)所述故障數(shù)據(jù)。
[0006]在一些實施例中,所述第一快照的快照時刻與所述目標(biāo)恢復(fù)信息中的目標(biāo)恢復(fù)時刻之間沒有創(chuàng)建其它快照。
[0007]在一些實施例中,所述基于所述故障數(shù)據(jù)的標(biāo)識信息在所述數(shù)據(jù)庫的第一快照中獲取所述故障數(shù)據(jù)的備份文件,包括:判斷所述第一快照的壓縮狀態(tài),其中所述壓縮狀態(tài)為指示所述第一快照中各備份文件是否為壓縮文件的狀態(tài);若所述第一快照未處于壓縮狀態(tài),則獲取所述故障數(shù)據(jù)的備份文件;若所述第一快照處于壓縮狀態(tài),則解壓縮所述第一快照,獲取所述故障數(shù)據(jù)的備份文件。
[0008]在一些實施例中,所述獲取所述故障數(shù)據(jù)的增量日志,包括:獲取所述第一快照的快照時刻與所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的與所述數(shù)據(jù)庫中包含的所有數(shù)據(jù)對應(yīng)的增量日志,構(gòu)成增量日志集合;從所述增量日志集合中提取所述故障數(shù)據(jù)的增量曰志。
[0009]在一些實施例中,所述從所述增量日志集合中提取所述故障數(shù)據(jù)的增量日志,包括:將所述增量日志集合解析成可讀文本信息;基于錨點定位確定所述增量日志集合中每個增量日志所對應(yīng)的可讀文本信息的起始位置和結(jié)束位置;基于預(yù)設(shè)的正則表達(dá)式與所述起始位置和所述結(jié)束位置的匹配,確定與所述故障數(shù)據(jù)的增量日志對應(yīng)的可讀文本信息;提取所述故障數(shù)據(jù)的增量日志。
[0010]在一些實施例中,所述基于所述故障數(shù)據(jù)的備份文件和所述故障數(shù)據(jù)的增量日志,恢復(fù)所述故障數(shù)據(jù),包括:創(chuàng)建臨時實例;將所述第一快照中獲取的所述故障數(shù)據(jù)的備份文件導(dǎo)入所述臨時實例;將所述第一快照的快照時刻和所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的所述故障數(shù)據(jù)的增量日志導(dǎo)入所述臨時實例;基于所述臨時實例,將所述數(shù)據(jù)庫恢復(fù)到所述目標(biāo)恢復(fù)時刻。
[0011]在一些實施例中,所述將所述第一快照中獲取的所述故障數(shù)據(jù)的備份文件導(dǎo)入所述臨時實例,包括:從所述第一快照中獲取所述故障數(shù)據(jù)的備份文件的編號;將所述故障數(shù)據(jù)的備份文件的編號與所述臨時實例中的編號進(jìn)行對比;當(dāng)所述故障數(shù)據(jù)的備份文件的編號與所述臨時實例中的編號相同時,將所述故障數(shù)據(jù)的備份文件導(dǎo)入所述臨時實例。
[0012]第二方面,本申請?zhí)峁┝藬?shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)系統(tǒng),所述系統(tǒng)包括:接收模塊,用于接收故障數(shù)據(jù)恢復(fù)請求信息,其中,所述故障數(shù)據(jù)恢復(fù)請求信息包括故障數(shù)據(jù)的標(biāo)識信息和目標(biāo)恢復(fù)時間信息;備份文件獲取模塊,用于基于所述故障數(shù)據(jù)的標(biāo)識信息在所述數(shù)據(jù)庫的第一快照中獲取所述故障數(shù)據(jù)的備份文件;增量日志獲取模塊,用于獲取所述故障數(shù)據(jù)的增量日志,其中,所述故障數(shù)據(jù)的增量日志包括所述故障數(shù)據(jù)在所述第一快照的快照時刻和所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的變化信息;以及恢復(fù)模塊,用于基于所述故障數(shù)據(jù)的備份文件和所述故障數(shù)據(jù)的增量日志,恢復(fù)所述故障數(shù)據(jù)。
[0013]在一些實施例中,所述第一快照的快照時刻與所述目標(biāo)恢復(fù)信息中的目標(biāo)恢復(fù)時刻之間沒有創(chuàng)建其它快照。
[0014]在一些實施例中,所述備份文件獲取模塊,具體用于:判斷所述第一快照的壓縮狀態(tài),其中所述壓縮狀態(tài)為指示所述第一快照中各備份文件是否為壓縮文件的狀態(tài);若所述第一快照未處于壓縮狀態(tài),則獲取所述故障數(shù)據(jù)的備份文件;若所述第一快照處于壓縮狀態(tài),則解壓縮所述第一快照,獲取所述故障數(shù)據(jù)的備份文件。
[0015]在一些實施例中,所述增量日志獲取模塊,具體用于:獲取所述第一快照的快照時刻與所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的與所述數(shù)據(jù)庫中包含的所有數(shù)據(jù)對應(yīng)的增量日志,構(gòu)成增量日志集合;從所述增量日志集合中提取所述故障數(shù)據(jù)的增量日志。
[0016]在一些實施例中,所述增量日志獲取模塊進(jìn)一步配置用于:將所述增量日志集合解析成可讀文本信息;基于錨點定位確定所述增量日志集合中每個增量日志所對應(yīng)的可讀文本信息的起始位置和結(jié)束位置;基于預(yù)設(shè)的正則表達(dá)式與所述起始位置和所述結(jié)束位置的匹配,確定所述故障數(shù)據(jù)的增量日志對應(yīng)的可讀文本信息;提取所述故障數(shù)據(jù)的增量日
ν.、ι、ο
[0017]在一些實施例中,所述恢復(fù)模塊,具體用于:創(chuàng)建臨時實例;將所述第一快照中獲取的所述故障數(shù)據(jù)的備份文件導(dǎo)入所述臨時實例;將所述第一快照的快照時刻和所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的所述故障數(shù)據(jù)的增量日志導(dǎo)入所述臨時實例;基于所述臨時實例,將所述數(shù)據(jù)庫恢復(fù)到所述目標(biāo)恢復(fù)時刻。
[0018]在一些實施例中,所述恢復(fù)模塊進(jìn)一步配置用于:從所述第一快照中獲取與所述故障數(shù)的備份文件的編號;將所述故障數(shù)據(jù)的備份文件的編號與所述臨時實例中的編號進(jìn)行對比;若所述故障數(shù)據(jù)的備份文件的編號與所述臨時實例中的編號相同時,則將所述故障數(shù)據(jù)的備份文件導(dǎo)入所述臨時實例。
[0019]本申請?zhí)峁┑臄?shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法和系統(tǒng),通過獲得所述數(shù)據(jù)庫的第一快照中獲取故障數(shù)據(jù)的備份文件,以及所述第一快照的快照時刻和所述目標(biāo)恢復(fù)時間信息中的目標(biāo)恢復(fù)時刻之間的故障數(shù)據(jù)的增量日志,最后基于所述故障數(shù)據(jù)的備份文件和所述故障數(shù)據(jù)的增量日志,恢復(fù)所述故障數(shù)據(jù),通過快照和增量日志的結(jié)合將恢復(fù)數(shù)據(jù)庫恢復(fù)到目標(biāo)恢復(fù)時刻,并且這種方法只需要恢復(fù)數(shù)據(jù)庫中故障數(shù)據(jù),極大的縮短了數(shù)據(jù)庫恢復(fù)需要的時間,提高了數(shù)據(jù)庫恢復(fù)的效率。
【附圖說明】
[0020]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
[0021]圖1是可以應(yīng)用于本申請實施例的示例性系統(tǒng)架構(gòu)圖;
[0022]圖2是根據(jù)本申請的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法的一個實施例的流程圖;
[0023]圖3是根據(jù)本申請的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法的一時間軸簡圖;
[0024]圖4是根據(jù)本申請的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法中,獲取故障數(shù)據(jù)的備份文件的一種實現(xiàn)方式的示意性流程圖;
[0025]圖5是根據(jù)本申請的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法中,獲取故障數(shù)據(jù)的增量日志的一種實現(xiàn)方式的示意性流程圖;
[0026]圖6是根據(jù)本申請的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)方法中,基于臨時實例恢復(fù)故障數(shù)據(jù)的一種實現(xiàn)方式的示意性流程圖;
[0027]圖7是根據(jù)本申請的數(shù)據(jù)庫中故障數(shù)據(jù)的恢復(fù)系統(tǒng)的一個實施例的結(jié)構(gòu)示意圖;
[0028]圖8是適于用來實現(xiàn)本申請實施例的客戶端設(shè)備或服務(wù)器的計算機系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0029]下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需