災(zāi)備端、生產(chǎn)端及兩者之間的數(shù)據(jù)恢復方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸與存儲技術(shù)領(lǐng)域,具體涉及一種災(zāi)備端、生產(chǎn)端及兩者之間的數(shù)據(jù)恢復方法。
【背景技術(shù)】
[0002]為了滿足較高等級的數(shù)據(jù)保護需求,并獲取較小的RP0(Recovery Point Object,恢復時間點目標)和RT0(Recovery Time Object,恢復時間目標),現(xiàn)有技術(shù)一般結(jié)合容災(zāi)系統(tǒng)和備份系統(tǒng)生成副本并恢復數(shù)據(jù),具體地,采用遠程復制技術(shù)使得容災(zāi)端保留最新生成的副本以實現(xiàn)容災(zāi),備份端保留多份歷史副本以實現(xiàn)備份。
[0003]但上述結(jié)合僅僅是兩個獨立系統(tǒng)的功能的結(jié)合,不僅需要分別構(gòu)建和維護容災(zāi)系統(tǒng)和備份系統(tǒng),使得構(gòu)建和維護成本居高不下,而且兩個獨立系統(tǒng)中的大部分數(shù)據(jù)重復且不能共享,導致存儲空間的利用率較低,尤其是,當生產(chǎn)端中最新的數(shù)據(jù)由于邏輯錯誤或者病毒等原因與容災(zāi)端中最新生成的副本不一致時,容災(zāi)端無法代替生產(chǎn)端執(zhí)行對應(yīng)的功能,整個業(yè)務(wù)系統(tǒng)將會癱瘓,另外由于備份端不能代替生產(chǎn)端執(zhí)行對應(yīng)的功能,恢復數(shù)據(jù)時需要將備份端的數(shù)據(jù)返回至生產(chǎn)端,導致RT0時間較長,整個業(yè)務(wù)系統(tǒng)的連續(xù)性不能得到很好的保證。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實施例提供一種災(zāi)備端、生產(chǎn)端及兩者之間的數(shù)據(jù)恢復方法,能夠由一個系統(tǒng)融合容災(zāi)和備份這兩種功能。
[0005]本發(fā)明實施例所采用的技術(shù)方案是:
[0006]第一方面提供一種數(shù)據(jù)恢復方法,包括:災(zāi)備端周期性的為生產(chǎn)端中的數(shù)據(jù)生成副本,并存儲周期性生成的副本,其中所述數(shù)據(jù)包括源數(shù)據(jù)及源數(shù)據(jù)的差量數(shù)據(jù);災(zāi)備端選取被存儲的副本,并利用被選取的副本恢復生產(chǎn)端中對應(yīng)的數(shù)據(jù),以代替生產(chǎn)端執(zhí)行其功能,其中所述被選取的副本包括最新生成的副本及在最新生成的副本之前生成的副本。
[0007]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,災(zāi)備端按照預(yù)設(shè)周期周期性的為生產(chǎn)端中的數(shù)據(jù)生成副本,所述災(zāi)備端存儲周期性生成的副本的步驟包括:災(zāi)備端選擇與前一個副本的時間間隔等于預(yù)設(shè)周期的整數(shù)倍的副本進行存儲。
[0008]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述災(zāi)備端存儲周期性生成的副本的步驟進一步包括:災(zāi)備端刪除生成時長大于預(yù)設(shè)時間門限的副本,并存儲生成時長小于或等于預(yù)設(shè)時間門限的副本;或者災(zāi)備端檢測當前存儲的副本的總數(shù)是否大于預(yù)設(shè)數(shù)量門限,并在總數(shù)大于預(yù)設(shè)數(shù)量門限時刪除最早生成的副本。
[0009]結(jié)合第一方面,在第三種可能的實現(xiàn)方式中,災(zāi)備端按照從晚到早的生成順序或者根據(jù)接收的指令選取所述被存儲的副本,其中所述指令用于選定所述被存儲的副本中的任意一個。
[0010]結(jié)合第一方面,在第四種可能的實現(xiàn)方式中,所述災(zāi)備端代替生產(chǎn)端執(zhí)行其功能的步驟之后包括:災(zāi)備端將執(zhí)行生產(chǎn)端的功能產(chǎn)生的數(shù)據(jù)復制到生產(chǎn)端,使得生產(chǎn)端生成并存儲對應(yīng)的副本。
[0011 ]第二方面提供一種災(zāi)備端,包括:生成模塊,用于周期性的為生產(chǎn)端中的數(shù)據(jù)生成副本,其中所述數(shù)據(jù)包括源數(shù)據(jù)及源數(shù)據(jù)的差量數(shù)據(jù);存儲模塊,用于存儲生成模塊周期性生成的副本;選取模塊,用于選取存儲模塊存儲的副本;執(zhí)行模塊,用于利用被選取模塊選取的副本代替生產(chǎn)端執(zhí)行其功能,其中所述被選取的副本包括生成模塊最新生成的副本及在最新生成的副本之前生成的副本。
[0012]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,生成模塊按照預(yù)設(shè)周期周期性的為生產(chǎn)端中的數(shù)據(jù)生成副本,存儲模塊存儲與前一個副本的時間間隔等于預(yù)設(shè)周期的整數(shù)倍的副本。
[0013]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,災(zāi)備端進一步包括計時計數(shù)模塊,用于得到生成模塊生成的各個所述副本的時長和當前被存儲模塊存儲的副本的總數(shù),存儲模塊進一步用于刪除生成時長大于預(yù)設(shè)時間門限的副本,并存儲生成時長小于或等于預(yù)設(shè)時間門限的副本,或者,存儲模塊進一步用于在所述總數(shù)大于預(yù)設(shè)數(shù)量門限時刪除最早生成的副本。
[0014]結(jié)合第二方面,在第三種可能的實現(xiàn)方式中,災(zāi)備端進一步包括用于接收指令的收發(fā)模塊,選取模塊按照從晚到早的生成順序或者根據(jù)收發(fā)模塊接收的指令選取所述被存儲的副本,其中所述指令用于選定所述被存儲的副本中的任意一個。
[0015]結(jié)合第二方面,在第四種可能的實現(xiàn)方式中,災(zāi)備端進一步包括收發(fā)模塊,收發(fā)模塊用于將執(zhí)行模塊執(zhí)行所述功能產(chǎn)生的數(shù)據(jù)復制到生產(chǎn)端,使得生產(chǎn)端生成并存儲對應(yīng)的副本。
[0016]第三方面提供一種數(shù)據(jù)恢復方法,包括:生產(chǎn)端周期性的將自身的數(shù)據(jù)復制到災(zāi)備端,使得災(zāi)備端周期性的為所述數(shù)據(jù)生成副本并存儲周期性生成的副本,以及選取被存儲的副本并利用被選取的副本代替生產(chǎn)端執(zhí)行其功能,其中所述數(shù)據(jù)包括源數(shù)據(jù)及源數(shù)據(jù)的差量數(shù)據(jù),所述被選取的副本包括最新生成的副本及在最新生成的副本之前生成的副本。
[0017]結(jié)合第三方面,在第一種可能的實現(xiàn)方式中,所述數(shù)據(jù)恢復方法還包括:生產(chǎn)端接收災(zāi)備端執(zhí)行所述功能時產(chǎn)生的數(shù)據(jù),以及周期性的為接收的數(shù)據(jù)生成副本并存儲。
[0018]結(jié)合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,生產(chǎn)端按照預(yù)設(shè)周期周期性的為接收的數(shù)據(jù)生成副本,所述生產(chǎn)端存儲生產(chǎn)端周期性生成的副本的步驟包括:生產(chǎn)端選擇與前一個副本的時間間隔等于預(yù)設(shè)周期的整數(shù)倍的副本進行存儲。
[0019]結(jié)合第三方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述生產(chǎn)端存儲生產(chǎn)端周期性生成的副本的步驟還包括:生產(chǎn)端刪除生成時長大于預(yù)設(shè)時間門限的副本,并存儲生成時長小于或等于預(yù)設(shè)時間門限的副本;或者生產(chǎn)端檢測當前存儲的副本的總數(shù)是否大于預(yù)設(shè)數(shù)量門限,并在所述總數(shù)大于預(yù)設(shè)數(shù)量門限時刪除最早生成的副本。
[0020]結(jié)合第三方面,在第四種可能的實現(xiàn)方式中,生產(chǎn)端還選取災(zāi)備端存儲的副本,并利用被生產(chǎn)端選取的副本執(zhí)行對應(yīng)的功能。
[0021]第四方面提供一種生產(chǎn)端,包括收發(fā)模塊,用于周期性的將自身的數(shù)據(jù)復制到災(zāi)備端,使得災(zāi)備端周期性的為所述數(shù)據(jù)生成副本并存儲周期性生成的副本,以及選取被存儲的副本并利用被選取的副本代替生產(chǎn)端執(zhí)行其功能,其中所述數(shù)據(jù)包括源數(shù)據(jù)及源數(shù)據(jù)的差量數(shù)據(jù),所述被選取的副本包括最新生成的副本及在最新生成的副本之前生成的副本。
[0022]結(jié)合第四方面,在第一種可能的實現(xiàn)方式中,生產(chǎn)端進一步包括生成模塊和存儲模塊,收發(fā)模塊還用于接收災(zāi)備端執(zhí)行所述功能時產(chǎn)生的數(shù)據(jù),生成模塊用于周期性的為接收的數(shù)據(jù)生成副本,存儲模塊用于存儲生成模塊周期性生成的副本。
[0023]結(jié)合第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,生成模塊按照預(yù)設(shè)周期周期性的為接收的數(shù)據(jù)生成副本,存儲模塊存儲與前一個副本的時間間隔等于預(yù)設(shè)周期的整數(shù)倍的副本。
[0024]結(jié)合第四方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,生產(chǎn)端進一步包括計時計數(shù)模塊,用于得到生成模塊生成的各個副本的時長和當前存儲模塊存儲的副本的總數(shù),存儲模塊進一步用于刪除生成時長大于預(yù)設(shè)時間門限的副本,并存儲生成時長小于或等于預(yù)設(shè)時間門限的副本,或者,存儲模塊進一步用于在所述總數(shù)大于預(yù)設(shè)數(shù)量門限時刪除最早生成的副本。
[0025]結(jié)合第四方面,在第四種可能的實現(xiàn)方式中,生產(chǎn)端還包括選取模塊和執(zhí)行模塊,選取模塊用于選取災(zāi)備端存儲的副本,執(zhí)行模塊利用被選取模塊選取的副本執(zhí)行對應(yīng)的功會泛。
[0026]本發(fā)明實施例的災(zāi)備端、生產(chǎn)端及兩者之間的數(shù)據(jù)恢復方法,在生產(chǎn)端出現(xiàn)災(zāi)難及故障時,災(zāi)備端可以利用存儲的最新生成的副本恢復數(shù)據(jù)以代替生產(chǎn)端執(zhí)行其功能,從而確保整個系統(tǒng)的繼續(xù)正常運行,且RT0時間較短,災(zāi)備端還可以利用存儲的歷史副本實現(xiàn)備份,從而有效避免生產(chǎn)端中的最新數(shù)據(jù)由于邏輯錯誤或者病毒等原因與最新生成的副本不一致時導致的整個業(yè)務(wù)系統(tǒng)癱瘓的問題,另外災(zāi)備端存儲有歷史副本,可以在生產(chǎn)端恢復正常時將歷史副本反饋給生產(chǎn)端,使得生產(chǎn)端可