一種數(shù)據(jù)遷移方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,公開(kāi)了一種數(shù)據(jù)遷移方法及系統(tǒng),該數(shù)據(jù)源遷移方法包括:對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片;將數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng);按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做;其中,上述預(yù)先記錄的寫(xiě)請(qǐng)求是同時(shí)寫(xiě)入舊系統(tǒng)和新系統(tǒng)的。本發(fā)明實(shí)施例在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,可以無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng),而且通過(guò)重做技術(shù)可以將新系統(tǒng)的數(shù)據(jù)恢復(fù)到最新,可以實(shí)現(xiàn)用戶(hù)完全無(wú)感知的后臺(tái)數(shù)據(jù)遷移,并減小新舊系統(tǒng)數(shù)據(jù)導(dǎo)入的風(fēng)險(xiǎn),簡(jiǎn)化運(yùn)維操作。
【專(zhuān)利說(shuō)明】一種數(shù)據(jù)遷移方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)遷移方法及系統(tǒng)。
【背景技術(shù)】
[0002]在用戶(hù)生成內(nèi)容(User Generated Content, UGC)業(yè)務(wù)(如微博)的新舊系統(tǒng)交替過(guò)程中,不可避免的會(huì)遇到數(shù)據(jù)遷移的問(wèn)題,而如何將舊系統(tǒng)數(shù)據(jù),在盡可能在不影響用戶(hù)的情況下完整遷移到新系統(tǒng),是一直以來(lái)亟需解決的難題。
[0003]現(xiàn)有技術(shù)中,常見(jiàn)的數(shù)據(jù)遷移方法是對(duì)舊系統(tǒng)禁寫(xiě)(即禁止用戶(hù)寫(xiě)請(qǐng)求)之后,將舊系統(tǒng)數(shù)據(jù)依次導(dǎo)入新系統(tǒng),再將用戶(hù)寫(xiě)請(qǐng)求路由到新系統(tǒng)繼續(xù)服務(wù)。然而,這種數(shù)據(jù)遷移方法最為粗暴,必須對(duì)舊系統(tǒng)禁寫(xiě),并且禁寫(xiě)時(shí)長(zhǎng)決于數(shù)據(jù)遷移時(shí)長(zhǎng),當(dāng)數(shù)據(jù)遷移時(shí)長(zhǎng)越大,對(duì)舊系統(tǒng)禁寫(xiě)時(shí)長(zhǎng)也就越大,從而給用戶(hù)寫(xiě)請(qǐng)求造成影響。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題是提供一種數(shù)據(jù)遷移方法及系統(tǒng),能夠在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng)。
[0005]本發(fā)明實(shí)施例第一方面提供一種數(shù)據(jù)遷移方法,包括:
[0006]對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片;
[0007]將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng);
[0008]按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做。
[0009]本發(fā)明實(shí)施例第二方面提供一種數(shù)據(jù)遷移系統(tǒng),包括:
[0010]切片單元,用于對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片;
[0011]導(dǎo)入單元,將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng);
[0012]重做單元,用于按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做。
[0013]本發(fā)明實(shí)施例中,對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片獲得數(shù)據(jù)切片,并將數(shù)據(jù)切片批量導(dǎo)入完畢新系統(tǒng)后,可以按照預(yù)先記錄的同時(shí)寫(xiě)入舊系統(tǒng)和新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做。通過(guò)這種方式,本發(fā)明實(shí)施例在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,可以無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng),而且通過(guò)重做技術(shù)可以將新系統(tǒng)的數(shù)據(jù)恢復(fù)到最新。本發(fā)明實(shí)施例可以實(shí)現(xiàn)用戶(hù)完全無(wú)感知的后臺(tái)數(shù)據(jù)遷移,并減小新舊系統(tǒng)數(shù)據(jù)導(dǎo)入的風(fēng)險(xiǎn),簡(jiǎn)化運(yùn)維操作。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0014]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)遷移方法的流程圖;
[0016]圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)遷移方法的流程圖;
[0017]圖3是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)遷移系統(tǒng)的結(jié)構(gòu)圖;
[0018]圖4是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)遷移系統(tǒng)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0019]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0020]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)遷移方法及系統(tǒng),能夠在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng)。以下分別進(jìn)行詳細(xì)說(shuō)明。
[0021]請(qǐng)參閱圖1,圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)遷移方法的流程圖。其中,圖1所描述的數(shù)據(jù)遷移方法不僅適用于UGC業(yè)務(wù)(如微博)的新舊系統(tǒng)之間的數(shù)據(jù)遷移,而且還適用于其它類(lèi)型業(yè)務(wù)的新舊系統(tǒng)之間的數(shù)據(jù)遷移,本發(fā)明實(shí)施例不作具體限定。如圖1所示,該數(shù)據(jù)遷移方法可以包括以下步驟。
[0022]101、對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片。
[0023]本發(fā)明實(shí)施例中,數(shù)據(jù)切片可以簡(jiǎn)稱(chēng)“切片”,是指對(duì)舊系統(tǒng)某一時(shí)間點(diǎn)的數(shù)據(jù),完整的制作一份文件鏡像,用于新系統(tǒng)的數(shù)據(jù)導(dǎo)入和恢復(fù)。
[0024]102、將數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)。
[0025]本發(fā)明實(shí)施例中,可以通過(guò)數(shù)據(jù)遷移進(jìn)程將數(shù)據(jù)切片批量導(dǎo)致新系統(tǒng)。
[0026]其中,數(shù)據(jù)遷移進(jìn)程是指通過(guò)加載舊系統(tǒng)的數(shù)據(jù)切片,將舊系統(tǒng)的數(shù)據(jù)切片導(dǎo)入到新系統(tǒng)中的程序。
[0027]103、按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做;其中,預(yù)先記錄的寫(xiě)請(qǐng)求是同時(shí)寫(xiě)入舊系統(tǒng)和新系統(tǒng)的。
[0028]本發(fā)明實(shí)施例中,寫(xiě)請(qǐng)求的序列號(hào)(sequence)是指為每個(gè)寫(xiě)請(qǐng)求分配的序列號(hào),用于按照順序?qū)π孪到y(tǒng)的數(shù)據(jù)進(jìn)行重做。
[0029]本發(fā)明實(shí)施例中,預(yù)先記錄的寫(xiě)請(qǐng)求是指在新舊系統(tǒng)的數(shù)據(jù)遷移過(guò)程中記錄的寫(xiě)請(qǐng)求,其中,在新舊系統(tǒng)的數(shù)據(jù)遷移過(guò)程中記錄寫(xiě)請(qǐng)求可以有效減少后續(xù)重做數(shù)據(jù)量。當(dāng)然,在不考慮減少后續(xù)重做數(shù)據(jù)量的情況下,也可以再在新舊系統(tǒng)的數(shù)據(jù)遷移過(guò)程之前就記錄寫(xiě)請(qǐng)求,本發(fā)明實(shí)施例不作限定。
[0030]本發(fā)明實(shí)施例中,上述步驟103中按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做的方式具體可以包括以下步驟:
[0031]I)、按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次分析每個(gè)寫(xiě)請(qǐng)求,獲得該寫(xiě)請(qǐng)求包含的密鑰key。
[0032]2)、確定新系統(tǒng)中匹配命中該寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù)。
[0033]3)、根據(jù)寫(xiě)請(qǐng)求對(duì)新系統(tǒng)中匹配命中該寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù)進(jìn)行重做。
[0034]本發(fā)明實(shí)施例中,重做(又稱(chēng)redo)是一種對(duì)新系統(tǒng)重做“寫(xiě)請(qǐng)求”的流水,可以將新系統(tǒng)的數(shù)據(jù)恢復(fù)到最新。
[0035]圖1所描述的數(shù)據(jù)遷移方法在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,可以無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng),而且通過(guò)重做技術(shù)可以將新系統(tǒng)的數(shù)據(jù)恢復(fù)到最新,以及可以實(shí)現(xiàn)用戶(hù)完全無(wú)感知的后臺(tái)數(shù)據(jù)遷移,并減小新舊系統(tǒng)數(shù)據(jù)導(dǎo)入的風(fēng)險(xiǎn),簡(jiǎn)化運(yùn)維操作。
[0036]請(qǐng)參閱圖2,圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)遷移方法的流程圖。同樣,圖2所描述的數(shù)據(jù)遷移方法不僅適用于UGC業(yè)務(wù)(如微博)的新舊系統(tǒng)之間的數(shù)據(jù)遷移,而且還適用于其它類(lèi)型業(yè)務(wù)的新舊系統(tǒng)之間的數(shù)據(jù)遷移,本發(fā)明實(shí)施例不作具體限定。如圖2所示,該數(shù)據(jù)遷移方法可以包括以下步驟。
[0037]201、搭建與舊系統(tǒng)、新系統(tǒng)鏈接的數(shù)據(jù)遷移層。
[0038]本發(fā)明實(shí)施例中,數(shù)據(jù)遷移層又稱(chēng)為“雙寫(xiě)層”,用于在數(shù)據(jù)切片導(dǎo)入過(guò)程中,將用戶(hù)輸出的寫(xiě)請(qǐng)求按一定時(shí)序同時(shí)寫(xiě)入到新舊系統(tǒng),便于進(jìn)行新舊系統(tǒng)的數(shù)據(jù)遷移。
[0039]202、通過(guò)數(shù)據(jù)遷移層將用戶(hù)輸入的寫(xiě)請(qǐng)求同時(shí)寫(xiě)入舊系統(tǒng)和新系統(tǒng),以及接收舊系統(tǒng)針對(duì)寫(xiě)請(qǐng)求返回的舊系統(tǒng)響應(yīng)包以及新系統(tǒng)針對(duì)寫(xiě)請(qǐng)求返回的新系統(tǒng)響應(yīng)包,并將舊系統(tǒng)響應(yīng)包返回給用戶(hù)。
[0040]203、控制新系統(tǒng)切換到數(shù)據(jù)遷移狀態(tài)。
[0041]其中,數(shù)據(jù)遷移狀態(tài)即是記錄用戶(hù)所有修改請(qǐng)求,并可以不按照順序重做(redo)寫(xiě)流水的一種特殊運(yùn)維狀態(tài)。
[0042]204、對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片,并通過(guò)數(shù)據(jù)遷移進(jìn)程將數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)(直接覆蓋)。
[0043]205、控制新系統(tǒng)切換至實(shí)時(shí)重做(redo)狀態(tài)。
[0044]206、按照預(yù)先記錄的同時(shí)寫(xiě)入舊系統(tǒng)和新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做,直到所有數(shù)據(jù)重做到最新。
[0045]207、如果在新系統(tǒng)的數(shù)據(jù)重做過(guò)程中有對(duì)重做數(shù)據(jù)的再次寫(xiě)請(qǐng)求,則按照再次請(qǐng)求的序列號(hào)順序依次對(duì)新系統(tǒng)中的每一個(gè)再次寫(xiě)請(qǐng)求對(duì)應(yīng)的重做數(shù)據(jù)進(jìn)行再次重做。
[0046]本發(fā)明實(shí)施例中,在新系統(tǒng)數(shù)據(jù)的redo過(guò)程中,如果有對(duì)redo數(shù)據(jù)的再次修改請(qǐng)求,可能會(huì)導(dǎo)致最終數(shù)據(jù)的錯(cuò)誤。簡(jiǎn)單的處理方法是按照再次修改請(qǐng)求的序列號(hào)順序依次對(duì)新系統(tǒng)中的每一個(gè)再次修改寫(xiě)請(qǐng)求對(duì)應(yīng)的重做數(shù)據(jù)進(jìn)行再次重做(一般再次重做的數(shù)據(jù)量很少)。不過(guò)從實(shí)際情況來(lái)看,發(fā)生這種再次修改請(qǐng)求并且引起數(shù)據(jù)不一致的情況低于
0.01%,不對(duì)重做數(shù)據(jù)進(jìn)行再次重做也能達(dá)到較好的數(shù)據(jù)一致性。
[0047]208、控制新系統(tǒng)退出重做狀態(tài),撤出數(shù)據(jù)遷移層,完成數(shù)據(jù)遷移。
[0048]在圖2所描述的數(shù)據(jù)遷移方法中,為了保證用于導(dǎo)入舊系統(tǒng)數(shù)據(jù)切片的數(shù)據(jù)遷移進(jìn)程和接收外部寫(xiě)請(qǐng)求的寫(xiě)進(jìn)程不會(huì)產(chǎn)生沖突,新系統(tǒng)的寫(xiě)進(jìn)程需要在數(shù)據(jù)遷移狀態(tài)下不對(duì)導(dǎo)入的舊系統(tǒng)數(shù)據(jù)進(jìn)行修改,但同時(shí)需要記錄外部寫(xiě)請(qǐng)求的序列號(hào),以便后面redo時(shí)可以補(bǔ)齊數(shù)據(jù)遷移過(guò)程中導(dǎo)入的數(shù)據(jù)。
[0049]圖2所描述的數(shù)據(jù)遷移方法在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,可以無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng),而且通過(guò)重做技術(shù)可以將新系統(tǒng)的數(shù)據(jù)恢復(fù)到最新,以及可以實(shí)現(xiàn)用戶(hù)完全無(wú)感知的后臺(tái)數(shù)據(jù)遷移,并減小新舊系統(tǒng)數(shù)據(jù)導(dǎo)入的風(fēng)險(xiǎn),簡(jiǎn)化運(yùn)維操作。
[0050]請(qǐng)參閱圖3,圖3是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)遷移系統(tǒng)的結(jié)構(gòu)圖。圖3所描述的數(shù)據(jù)遷移系統(tǒng)不僅適用于UGC業(yè)務(wù)(如微博)的新舊系統(tǒng)之間的數(shù)據(jù)遷移,而且還適用于其它類(lèi)型業(yè)務(wù)的新舊系統(tǒng)之間的數(shù)據(jù)遷移,本發(fā)明實(shí)施例不作具體限定。如圖3所示,該數(shù)據(jù)遷移系統(tǒng)可以包括:
[0051]切片單元301,用于對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片;
[0052]導(dǎo)入單元302,將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng);
[0053]重做單元303,用于按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做;其中,所述預(yù)先記錄的寫(xiě)請(qǐng)求是同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的。
[0054]本發(fā)明實(shí)施例中,導(dǎo)入單元302具體用于通過(guò)數(shù)據(jù)遷移進(jìn)程將數(shù)據(jù)切片批量導(dǎo)致新系統(tǒng)。
[0055]本發(fā)明實(shí)施例中,重做單元303具體用于按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次分析每個(gè)寫(xiě)請(qǐng)求,獲得寫(xiě)請(qǐng)求包含的密鑰key,確定新系統(tǒng)中匹配命中寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù);以及,根據(jù)寫(xiě)請(qǐng)求對(duì)新系統(tǒng)中匹配命中寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù)進(jìn)行重做。
[0056]請(qǐng)一并參閱圖4,圖4是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)遷移系統(tǒng)的結(jié)構(gòu)圖。其中,圖4所描述的數(shù)據(jù)遷移系統(tǒng)是由圖3所示的數(shù)據(jù)遷移系統(tǒng)進(jìn)行優(yōu)化得到的。與圖3所示的數(shù)據(jù)遷移系統(tǒng)相比,圖4所示的數(shù)據(jù)遷移系統(tǒng)還可以包括:
[0057]處理單元304,用于在切片單元301對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片之前,搭建與舊系統(tǒng)、新系統(tǒng)鏈接的數(shù)據(jù)遷移層;通過(guò)數(shù)據(jù)遷移層將用戶(hù)輸入的寫(xiě)請(qǐng)求同時(shí)寫(xiě)入舊系統(tǒng)和新系統(tǒng);以及,接收舊系統(tǒng)針對(duì)寫(xiě)請(qǐng)求返回的舊系統(tǒng)響應(yīng)包以及新系統(tǒng)針對(duì)寫(xiě)請(qǐng)求返回的新系統(tǒng)響應(yīng)包;將舊系統(tǒng)響應(yīng)包返回給所述用戶(hù)。
[0058]控制單元305,用于在導(dǎo)入單元302將數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)之后,以及在重做單元303按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做之前,控制新系統(tǒng)切換至實(shí)時(shí)重做狀態(tài)。
[0059]本發(fā)明實(shí)施例中,重做單元303還用于在新系統(tǒng)的數(shù)據(jù)重做過(guò)程中有對(duì)重做數(shù)據(jù)的再次修改請(qǐng)求時(shí),按照再次修改請(qǐng)求的序列號(hào)順序依次對(duì)所述新系統(tǒng)中的每一個(gè)再次修改請(qǐng)求對(duì)應(yīng)的重做數(shù)據(jù)進(jìn)行再次重做。
[0060]圖3、圖4所描述的數(shù)據(jù)遷移系統(tǒng)在無(wú)需對(duì)舊系統(tǒng)禁寫(xiě)的情況下,可以無(wú)縫的將舊系統(tǒng)數(shù)據(jù)導(dǎo)入新系統(tǒng),而且通過(guò)重做技術(shù)可以將新系統(tǒng)的數(shù)據(jù)恢復(fù)到最新,以及可以實(shí)現(xiàn)用戶(hù)完全無(wú)感知的后臺(tái)數(shù)據(jù)遷移,并減小新舊系統(tǒng)數(shù)據(jù)導(dǎo)入的風(fēng)險(xiǎn),簡(jiǎn)化運(yùn)維操作。
[0061]通過(guò)上述分析可知,本發(fā)明實(shí)施例提供的數(shù)據(jù)遷移方法及系統(tǒng)還具備以下優(yōu)點(diǎn):
[0062]1、后臺(tái)的數(shù)據(jù)遷移動(dòng)作,對(duì)用戶(hù)完全無(wú)感知(全程不用對(duì)用戶(hù)禁寫(xiě),不影響舊系統(tǒng)服務(wù));
[0063]2、大幅降低用戶(hù)對(duì)后臺(tái)數(shù)據(jù)遷移的感知程度,出現(xiàn)異常時(shí)可以隨時(shí)停止并重新遷移;
[0064]3、降低運(yùn)維代價(jià),不用在凌晨進(jìn)行數(shù)據(jù)遷移,數(shù)據(jù)遷移可以在任意時(shí)間進(jìn)行;
[0065]4、降低帶寬成本和遷移后校驗(yàn)成本,數(shù)據(jù)遷移過(guò)程只用復(fù)制一次數(shù)據(jù)切片,恢復(fù)并對(duì)齊數(shù)據(jù)完全不依賴(lài)于舊系統(tǒng)的數(shù)據(jù)內(nèi)容。
[0066]本發(fā)明實(shí)施例中,新系統(tǒng)也不一定需要實(shí)現(xiàn)實(shí)時(shí)redo狀態(tài),可以通過(guò)從舊系統(tǒng)拉取新增部分?jǐn)?shù)據(jù),并合并到新系統(tǒng)的方式來(lái)實(shí)現(xiàn)。不過(guò),從舊系統(tǒng)拉取新增部分?jǐn)?shù)據(jù),會(huì)對(duì)線(xiàn)上服務(wù)的系統(tǒng)造成壓力,并且合并數(shù)據(jù)的過(guò)程既漫長(zhǎng),實(shí)現(xiàn)又復(fù)雜。
[0067]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤(pán)、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取器(Random AccessMemory, RAM)、磁盤(pán)或光盤(pán)等。
[0068]以上對(duì)本發(fā)明實(shí)施例所提供的數(shù)據(jù)遷移方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種數(shù)據(jù)遷移方法,其特征在于,包括: 對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片; 將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng); 按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征在于,所述將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)包括: 通過(guò)數(shù)據(jù)遷移進(jìn)程將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)遷移方法,其特征在于,所述按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做包括: 按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次分析每個(gè)寫(xiě)請(qǐng)求,獲得所述寫(xiě)請(qǐng)求包含的密鑰key; 確定所述新系統(tǒng)中匹配命中所述寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù); 根據(jù)所述寫(xiě)請(qǐng)求對(duì)所述新系統(tǒng)中匹配命中所述寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù)進(jìn)行重做。
4.根據(jù)權(quán)利要求1、2或3所述的數(shù)據(jù)遷移方法,其特征在于,所述對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片之前,所述方法還包括: 搭建與舊系統(tǒng)、新系統(tǒng)鏈接的數(shù)據(jù)遷移層; 通過(guò)所述數(shù)據(jù)遷移層將用戶(hù)輸入的寫(xiě)請(qǐng)求同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng); 接收所述舊系統(tǒng)針對(duì)所述寫(xiě)請(qǐng)求返回的舊系統(tǒng)響應(yīng)包以及所述新系統(tǒng)針對(duì)所述寫(xiě)請(qǐng)求返回的新系統(tǒng)響應(yīng)包; 將所述舊系統(tǒng)響應(yīng)包返回給所述用戶(hù)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)遷移方法,其特征在于,在將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)之后,以及在按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做之前,所述方法還包括: 控制所述新系統(tǒng)切換至實(shí)時(shí)重做狀態(tài)。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)遷移方法,其特征在于,所述按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做之后,所述方法還包括: 如果在新系統(tǒng)的數(shù)據(jù)重做過(guò)程中有對(duì)重做數(shù)據(jù)的再次修改請(qǐng)求,則按照再次修改請(qǐng)求的序列號(hào)順序依次對(duì)所述新系統(tǒng)中的每一個(gè)再次修改請(qǐng)求對(duì)應(yīng)的重做數(shù)據(jù)進(jìn)行再次重做。
7.一種數(shù)據(jù)遷移系統(tǒng),其特征在于,包括: 切片單元,用于對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片; 導(dǎo)入單元,將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng); 重做單元,用于按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)遷移系統(tǒng),其特征在于,所述導(dǎo)入單元具體用于通過(guò)數(shù)據(jù)遷移進(jìn)程將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)。
9.根據(jù)權(quán)利要求7所述的數(shù)據(jù)遷移系統(tǒng),其特征在于,所述重做單元具體用于按照預(yù)先記錄的同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng)的寫(xiě)請(qǐng)求的序列號(hào)順序,依次分析每個(gè)寫(xiě)請(qǐng)求,獲得所述寫(xiě)請(qǐng)求包含的密鑰key;確定所述新系統(tǒng)中匹配命中所述寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù);以及,根據(jù)所述寫(xiě)請(qǐng)求對(duì)所述新系統(tǒng)中匹配命中所述寫(xiě)請(qǐng)求包含的密鑰key的數(shù)據(jù)進(jìn)行重做。
10.根據(jù)權(quán)利要求7、8或9所述的數(shù)據(jù)遷移系統(tǒng),其特征在于,還包括: 處理單元,用于在所述切片單元對(duì)舊系統(tǒng)數(shù)據(jù)進(jìn)行切片,獲得數(shù)據(jù)切片之前,搭建與舊系統(tǒng)、新系統(tǒng)鏈接的數(shù)據(jù)遷移層;通過(guò)所述數(shù)據(jù)遷移層將用戶(hù)輸入的寫(xiě)請(qǐng)求同時(shí)寫(xiě)入所述舊系統(tǒng)和所述新系統(tǒng);以及, 接收所述舊系統(tǒng)針對(duì)所述寫(xiě)請(qǐng)求返回的舊系統(tǒng)響應(yīng)包以及所述新系統(tǒng)針對(duì)所述寫(xiě)請(qǐng)求返回的新系統(tǒng)響應(yīng)包;將所述舊系統(tǒng)響應(yīng)包返回給所述用戶(hù)。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)遷移系統(tǒng),其特征在于,還包括: 控制單元,用于在所述導(dǎo)入單元將所述數(shù)據(jù)切片批量導(dǎo)入新系統(tǒng)之后,以及在所述重做單元按照預(yù)先記錄的寫(xiě)請(qǐng)求的序列號(hào)順序,依次對(duì)所述新系統(tǒng)中的每一個(gè)寫(xiě)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)進(jìn)行重做之前,控制新系統(tǒng)切換至實(shí)時(shí)重做狀態(tài)。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)遷移系統(tǒng),其特征在于,所述重做單元還用于在新系統(tǒng)的數(shù)據(jù)重做過(guò)程中有對(duì)重做數(shù)據(jù)的再次修改請(qǐng)求時(shí),按照再次修改請(qǐng)求的序列號(hào)順序依次對(duì)所述新系統(tǒng)中的每一個(gè)再次修改請(qǐng)求對(duì)應(yīng)的重做數(shù)據(jù)進(jìn)行再次重做。
【文檔編號(hào)】G06F17/30GK103914474SQ201310002047
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2013年1月5日 優(yōu)先權(quán)日:2013年1月5日
【發(fā)明者】周智昊, 田明, 劉里 申請(qǐng)人:騰訊科技(深圳)有限公司