本發(fā)明實(shí)施例涉及數(shù)據(jù)遷徙技術(shù)領(lǐng)域,尤其涉及一種動(dòng)態(tài)數(shù)據(jù)備份方法及裝置。
背景技術(shù):
隨著大數(shù)據(jù)時(shí)代的到來,對(duì)于大數(shù)據(jù)的應(yīng)用需求不斷增加。在大數(shù)據(jù)的應(yīng)用中,數(shù)據(jù)量隨時(shí)間的推移不斷增加,隨著數(shù)據(jù)量的增加,對(duì)硬件設(shè)備和網(wǎng)絡(luò)結(jié)構(gòu)的處理能力也提出了更高的要求。為了滿足不斷擴(kuò)充的數(shù)據(jù)量和不斷提高的數(shù)據(jù)處理能力,必須不斷對(duì)硬件設(shè)備進(jìn)行升級(jí)改造。
在兼顧容量、數(shù)據(jù)處理能力和實(shí)現(xiàn)成本的情況下,對(duì)硬件設(shè)備進(jìn)行升級(jí)改造時(shí),分布式處理系統(tǒng)稱為首選的系統(tǒng),因?yàn)榉植际教幚硐到y(tǒng)具有良好的數(shù)據(jù)處理能力和升級(jí)擴(kuò)展能力,適合用來作為大數(shù)據(jù)系統(tǒng)的硬件架構(gòu)。但分布式處理系統(tǒng)所遭遇的問題同樣巨大,當(dāng)分布式處理系統(tǒng)進(jìn)行數(shù)據(jù)升級(jí)時(shí),數(shù)據(jù)遷徙十分困難。這是由于分布式處理系統(tǒng)中的數(shù)據(jù)分布在數(shù)個(gè)節(jié)點(diǎn)上,而在進(jìn)行升級(jí)之后,節(jié)點(diǎn)的數(shù)量會(huì)增加,如何對(duì)數(shù)據(jù)進(jìn)行合理的分配成為一個(gè)難題。如果數(shù)據(jù)是動(dòng)態(tài)變化的,那問題將變得更加棘手?,F(xiàn)有技術(shù)中多數(shù)的備份方式采用單一的備份路徑,即數(shù)據(jù)源(數(shù)據(jù)庫)與備份目標(biāo)(磁帶)之間僅有單一的備份路徑,數(shù)據(jù)只能以串行的方式進(jìn)行備份,因此,海量數(shù)據(jù)的遷徙需要占用很長(zhǎng)的時(shí)間,在這段時(shí)間內(nèi),原來的處理系統(tǒng)上的數(shù)據(jù)又發(fā)生了變化,導(dǎo)致原處理系統(tǒng)和新處理系統(tǒng)上的數(shù)據(jù)不一致,這將給系統(tǒng)升級(jí)和過渡帶來很大的困難。對(duì)此,現(xiàn)有技術(shù)并沒有穩(wěn)定可靠的解決方案。
綜上,現(xiàn)有技術(shù)中亟需一種動(dòng)態(tài)數(shù)據(jù)備份方法,實(shí)現(xiàn)分布式處理系統(tǒng)在動(dòng)態(tài)數(shù)據(jù)備份時(shí)進(jìn)行穩(wěn)定可靠的數(shù)據(jù)遷徙。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種動(dòng)態(tài)數(shù)據(jù)備份方法及裝置,用以實(shí)現(xiàn)分布式處理系統(tǒng)在動(dòng)態(tài)數(shù)據(jù)備份時(shí)進(jìn)行穩(wěn)定可靠的數(shù)據(jù)遷徙。
本發(fā)明實(shí)施例提供一種動(dòng)態(tài)數(shù)據(jù)備份方法,包括:
將第一數(shù)據(jù)庫的第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,所述第一節(jié)點(diǎn)上的存量數(shù)據(jù)為備份啟動(dòng)時(shí)第一節(jié)點(diǎn)上已存儲(chǔ)的承載所述第一節(jié)點(diǎn)的第一處理器的運(yùn)行數(shù)據(jù),所述第一數(shù)據(jù)庫中包括n個(gè)第一節(jié)點(diǎn),任兩個(gè)第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)不同或者部分第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)相同;
將所述第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),分發(fā)至第二數(shù)據(jù)庫中與所述第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),所述第二數(shù)據(jù)庫中包括p個(gè)第二節(jié)點(diǎn),所述第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)至少為1個(gè),p大于n。
本發(fā)明實(shí)施例提供一種動(dòng)態(tài)數(shù)據(jù)備份裝置,包括:
第一處理單元,用于將第一數(shù)據(jù)庫的第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,所述第一節(jié)點(diǎn)上的存量數(shù)據(jù)為備份啟動(dòng)時(shí)第一節(jié)點(diǎn)上已存儲(chǔ)的承載所述第一節(jié)點(diǎn)的第一處理器的運(yùn)行數(shù)據(jù),所述第一數(shù)據(jù)庫中包括n個(gè)第一節(jié)點(diǎn),任兩個(gè)第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)不同或者部分第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)相同;
第二處理單元,用于將所述第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),分發(fā)至第二數(shù)據(jù)庫中與所述第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),所述第二數(shù)據(jù)庫中包括p個(gè)第二節(jié)點(diǎn),所述第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)至少為1個(gè),p大于n。
上述實(shí)施例中,通過將第一數(shù)據(jù)庫分為多個(gè)分區(qū)數(shù)據(jù)庫,即n個(gè)第一節(jié)點(diǎn),將第二數(shù)據(jù)庫分為多個(gè)分區(qū)數(shù)據(jù)庫,即p個(gè)第二節(jié)點(diǎn),并且預(yù)先設(shè)置了任一第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),這樣在進(jìn)行數(shù)據(jù)備份時(shí),通過將第一數(shù)據(jù)庫中任一個(gè)第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,并將該第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù)分發(fā)至第二數(shù)據(jù)庫中與所述第一節(jié)點(diǎn)對(duì)應(yīng)的第二 節(jié)點(diǎn)上,即通過n條復(fù)制路徑將第一數(shù)據(jù)庫的存量數(shù)據(jù)復(fù)制到第二數(shù)據(jù)庫中,這n條復(fù)制路徑可以同時(shí)進(jìn)行,互不干擾,與現(xiàn)有技術(shù)中只通過一條復(fù)制路徑進(jìn)行大批量存量數(shù)據(jù)的備份相比,n條復(fù)制路徑的高可用性,大大縮短了數(shù)據(jù)備份的時(shí)間,提高了整個(gè)系統(tǒng)數(shù)據(jù)備份的效率,而且因預(yù)先設(shè)置了第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射關(guān)系,使得數(shù)據(jù)備份時(shí),只將指定第一節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)按照指定路徑復(fù)制給與指定第一節(jié)點(diǎn)存在映射關(guān)系的第二節(jié)點(diǎn),而不會(huì)分發(fā)給與指定第一節(jié)點(diǎn)不存在映射關(guān)系的第二節(jié)點(diǎn),避免出現(xiàn)遷徙后的存量數(shù)據(jù)在多個(gè)節(jié)點(diǎn)上難以合理分配的問題,也避免了系統(tǒng)升級(jí)前后原處理系統(tǒng)和新處理系統(tǒng)上的數(shù)據(jù)不一致問題,因此本發(fā)明實(shí)施例提高了數(shù)據(jù)遷徙的高可靠性。
附圖說明
圖1為本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)數(shù)據(jù)備份方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射方式的示意圖;
圖3為本發(fā)明實(shí)施例提供的一種第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射方式的示意圖;
圖4為本發(fā)明實(shí)施例提供的一種第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射方式的示意圖;
圖5為本發(fā)明實(shí)施例提供的一種第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射方式的示意圖;
圖6a、圖6b、圖6c為本發(fā)明實(shí)施例提供的在服務(wù)器上架設(shè)第二節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)數(shù)據(jù)備份裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā) 明作進(jìn)一步地詳細(xì)描述。
為了實(shí)現(xiàn)分布式處理系統(tǒng)在動(dòng)態(tài)數(shù)據(jù)備份時(shí)能夠進(jìn)行穩(wěn)定可靠的數(shù)據(jù)遷徙,本發(fā)明實(shí)施例提供了如圖1所示的一種動(dòng)態(tài)數(shù)據(jù)備份方法,具體流程包括:
步驟101,將第一數(shù)據(jù)庫的第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,第一節(jié)點(diǎn)上的存量數(shù)據(jù)為備份啟動(dòng)時(shí)第一節(jié)點(diǎn)上已存儲(chǔ)的承載第一節(jié)點(diǎn)的第一處理器的運(yùn)行數(shù)據(jù),第一數(shù)據(jù)庫中包括n個(gè)第一節(jié)點(diǎn),任兩個(gè)第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)不同或者部分第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)相同;
步驟102,將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),分發(fā)至第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),第二數(shù)據(jù)庫中包括p個(gè)第二節(jié)點(diǎn),第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)至少為1個(gè),p大于n。
上述步驟101中,n為大于1的正整數(shù),p為大于或者等于n的正整數(shù)。第一節(jié)點(diǎn)上的存量數(shù)據(jù)可根據(jù)第一標(biāo)記識(shí)別,第一標(biāo)記可以為時(shí)間戳,第一標(biāo)記的時(shí)間戳為開始對(duì)該第一節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)進(jìn)行備份的時(shí)間,第一節(jié)點(diǎn)上的存量數(shù)據(jù)是指在第一標(biāo)記的時(shí)間戳之前存儲(chǔ)在第一節(jié)點(diǎn)上的數(shù)據(jù),該第一節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)是指承載該第一節(jié)點(diǎn)的處理器的運(yùn)行數(shù)據(jù)。
其中,第二數(shù)據(jù)庫用于存儲(chǔ)新的分布式處理系統(tǒng)的運(yùn)行數(shù)據(jù),第一數(shù)據(jù)庫用于存儲(chǔ)原有的分布式處理系統(tǒng)的運(yùn)行數(shù)據(jù),新的分布式處理系統(tǒng)是對(duì)原有的分布式處理系統(tǒng)的升級(jí)和擴(kuò)充,因此通常來說,第二數(shù)據(jù)庫中的第二節(jié)點(diǎn)的數(shù)量會(huì)多于第一數(shù)據(jù)庫中的第一節(jié)點(diǎn)的數(shù)量。第一節(jié)點(diǎn)為第一數(shù)據(jù)庫的分區(qū)數(shù)據(jù)庫,第二節(jié)點(diǎn)為第二數(shù)據(jù)庫的分區(qū)數(shù)據(jù)庫。在進(jìn)行數(shù)據(jù)分發(fā)時(shí),需要按照一定的規(guī)則將原先分布在各個(gè)第一節(jié)點(diǎn)上的數(shù)據(jù)重新分發(fā)到第二節(jié)點(diǎn)上。
按照上述方法將第一數(shù)據(jù)庫中的存量數(shù)據(jù)備份至第二數(shù)據(jù)庫的過程包括多個(gè)備份路徑,具體實(shí)現(xiàn)體現(xiàn)在兩個(gè)方面,一個(gè)方面設(shè)置第一節(jié)點(diǎn)與第二節(jié)點(diǎn)的映射關(guān)系,每個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)一個(gè)或多個(gè)第二節(jié)點(diǎn),第一數(shù)據(jù)庫中有多少個(gè)第一節(jié)點(diǎn),就有多少個(gè)備份路徑,在進(jìn)行數(shù)據(jù)備份時(shí),只將指定的第一節(jié)點(diǎn)的存量數(shù)據(jù)分發(fā)到指定的該第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)上。另一方面,任一個(gè)第一 節(jié)點(diǎn)與該第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)之間的數(shù)據(jù)的遷徙和分發(fā),是通過第一節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)存儲(chǔ)介質(zhì)進(jìn)行轉(zhuǎn)發(fā)而實(shí)現(xiàn)的,每一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)一個(gè)目標(biāo)存儲(chǔ)介質(zhì),也就是一個(gè)備份路徑映射一個(gè)目標(biāo)存儲(chǔ)介質(zhì),具體實(shí)現(xiàn)中,令任兩個(gè)第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)不同,也就是n個(gè)第一節(jié)點(diǎn),對(duì)應(yīng)n個(gè)目標(biāo)存儲(chǔ)介質(zhì),也可以一部分第一節(jié)點(diǎn)對(duì)應(yīng)同一個(gè)目標(biāo)存儲(chǔ)介質(zhì),以建立多個(gè)第一節(jié)點(diǎn)至多個(gè)介質(zhì)的多個(gè)備份路徑。也可以建立多個(gè)第一節(jié)點(diǎn)至一個(gè)存儲(chǔ)介質(zhì)的多個(gè)備份路徑,這一個(gè)存儲(chǔ)介質(zhì)可以分為n個(gè)存儲(chǔ)分區(qū),n個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)n個(gè)存儲(chǔ)分區(qū),進(jìn)而實(shí)現(xiàn)n個(gè)備份路徑。
第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)為實(shí)體存儲(chǔ)介質(zhì)或者為一個(gè)實(shí)體存儲(chǔ)介質(zhì)的一個(gè)存儲(chǔ)分區(qū)。存儲(chǔ)介質(zhì)可以選用任何一種現(xiàn)有的介質(zhì)來實(shí)現(xiàn)。在實(shí)際的應(yīng)用中,存儲(chǔ)介質(zhì)的選擇主要會(huì)以實(shí)現(xiàn)成本來考量。從成本的角度看,容量大、成本低的磁帶是較好的選擇。但隨著技術(shù)的發(fā)展,可能其他存儲(chǔ)介質(zhì)會(huì)更加合適,或者會(huì)出現(xiàn)更新的存儲(chǔ)介質(zhì),但這應(yīng)當(dāng)被視為在本發(fā)明的范疇之內(nèi)。本發(fā)明在數(shù)據(jù)備份時(shí)考慮的是選擇一種最具有性價(jià)比的介質(zhì)。將數(shù)據(jù)備份到磁帶上可以通過多種現(xiàn)有的技術(shù)來實(shí)現(xiàn),但現(xiàn)有技術(shù)中多數(shù)的備份方式采用單一的備份路徑,即數(shù)據(jù)源(數(shù)據(jù)庫)與備份目標(biāo)(磁帶)之間僅有單一的備份路徑,數(shù)據(jù)只能以串行的方式進(jìn)行備份。對(duì)于具有多個(gè)節(jié)點(diǎn)的分布式處理系統(tǒng)來說,這種單一備份路徑的備份方式顯然效率太低,本發(fā)明將第一數(shù)據(jù)庫中的存量數(shù)據(jù)備份至第二數(shù)據(jù)庫的過程包括多個(gè)備份路徑,實(shí)現(xiàn)分布式處理系統(tǒng)多節(jié)點(diǎn)數(shù)據(jù)備份的高效性。
值得說明的是,本發(fā)明實(shí)施例中n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間有多種映射策略,第二數(shù)據(jù)庫中第二節(jié)點(diǎn)的數(shù)量p是第一數(shù)據(jù)庫中第一節(jié)點(diǎn)的數(shù)量n的整數(shù)倍n,每個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)為n個(gè),第二數(shù)據(jù)庫中第二節(jié)點(diǎn)的數(shù)量p也可以是第一數(shù)據(jù)庫中第一節(jié)點(diǎn)的數(shù)量n的非整數(shù)倍。但并不局限于本發(fā)明實(shí)施例所列舉的幾種實(shí)例。
下面針對(duì)本發(fā)明n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的映射方式進(jìn)行詳述。
如圖2所示的本發(fā)明實(shí)施例提供的一種n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的映射方式。按照最普通的分布式系統(tǒng)的節(jié)點(diǎn)數(shù)量設(shè)計(jì),n和p都是2的n次冪。第一節(jié)點(diǎn)的數(shù)量m=32,第二節(jié)點(diǎn)的數(shù)量n=128。第二節(jié)點(diǎn)的數(shù)量相對(duì)于第一節(jié)點(diǎn)的數(shù)量進(jìn)行4倍的擴(kuò)充。圖2所示的實(shí)施例中,n個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的p個(gè)第二節(jié)點(diǎn)采用下述4行×32列的矩陣來體現(xiàn)。4行×32列的矩陣包括共128個(gè)第二節(jié)點(diǎn)。第一行的編號(hào)順序?yàn)?-32、第二行為33-64、第三行為65-96、第四行為97-128。每一列的4個(gè)第二節(jié)點(diǎn)與一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)。第一行的32個(gè)第二節(jié)點(diǎn)依次對(duì)應(yīng)成一行排列的32個(gè)第一節(jié)點(diǎn),每一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)位于矩陣同一列中的4個(gè)第二節(jié)點(diǎn),即編號(hào)為1的第一節(jié)點(diǎn)對(duì)應(yīng)編號(hào)為1、33、65和97的四個(gè)第二節(jié)點(diǎn)。通過圖2所示的矩陣,完成了由32個(gè)第一節(jié)點(diǎn)至128個(gè)第二節(jié)點(diǎn)的映射擴(kuò)充。這128個(gè)第二節(jié)點(diǎn)在實(shí)現(xiàn)分布式處理系統(tǒng)時(shí)是被架設(shè)在數(shù)臺(tái)服務(wù)器上。架設(shè)所使用的服務(wù)器的性能可以都相同,例如每一個(gè)服務(wù)器具有四個(gè)處理器,那么每四個(gè)節(jié)點(diǎn)被架設(shè)在同一臺(tái)服務(wù)器上。一種典型的設(shè)置是每一列的四個(gè)第二節(jié)點(diǎn)對(duì)應(yīng)于同一個(gè)第一節(jié)點(diǎn),這四個(gè)第二節(jié)點(diǎn)被架設(shè)在一臺(tái)服務(wù)器上,每一個(gè)第二節(jié)點(diǎn)對(duì)應(yīng)四個(gè)處理器中的一個(gè)處理器。在圖2中,用虛線框表示第二節(jié)點(diǎn)所在的服務(wù)器。
在實(shí)際應(yīng)用中,選用性能相同的數(shù)臺(tái)服務(wù)器,以2的n次冪的數(shù)量來配置節(jié)點(diǎn)數(shù)量是最常規(guī)的選擇,因此都可以采用圖2所展示的矩陣的方式來實(shí)現(xiàn)節(jié)點(diǎn)擴(kuò)充。歸納而言,新的分布式處理系統(tǒng)中的節(jié)點(diǎn)數(shù)量將會(huì)是舊的分布式處理系統(tǒng)中的節(jié)點(diǎn)數(shù)量的2n倍。矩陣的第一行的編號(hào)與舊的分布式系統(tǒng)中的第一節(jié)點(diǎn)對(duì)應(yīng),而整個(gè)矩陣中的編號(hào)與新的分布式系統(tǒng)中的第二節(jié)點(diǎn)對(duì)應(yīng)。每一個(gè)舊的第一節(jié)點(diǎn)對(duì)應(yīng)處于同一列中的多個(gè)(一般是2n個(gè))新的第二節(jié)點(diǎn)。每一列上的多個(gè)新的第二節(jié)點(diǎn)被架設(shè)在同一個(gè)服務(wù)器上,該服務(wù)器具有相應(yīng)數(shù)量的處理器,每一個(gè)處理器能夠處理一個(gè)第二節(jié)點(diǎn)。
圖3所示的本發(fā)明實(shí)施例提供的一種n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的映射方式。第一節(jié)點(diǎn)的數(shù)量為36個(gè),而第二節(jié)點(diǎn)的數(shù)量為108個(gè)。第一節(jié)點(diǎn) 的數(shù)量和第二節(jié)點(diǎn)的數(shù)量都不是2的n次冪,但第二節(jié)點(diǎn)的數(shù)量是第一節(jié)點(diǎn)的數(shù)量的整數(shù)倍。第二節(jié)點(diǎn)的數(shù)量相對(duì)于第一節(jié)點(diǎn)的數(shù)量進(jìn)行3倍的擴(kuò)充。在圖3所示的實(shí)施例中,n個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的p個(gè)第二節(jié)點(diǎn)采用下述3行×36列的矩陣來體現(xiàn)。第一行第二節(jié)點(diǎn)的編號(hào)順序?yàn)?-36、第二行第二節(jié)點(diǎn)的編號(hào)順序37-72、第三行第二節(jié)點(diǎn)的編號(hào)順序?yàn)?3-96。每一列的3個(gè)第二節(jié)點(diǎn)與一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)。第一行的36個(gè)節(jié)點(diǎn)1-36可以理解為是對(duì)應(yīng)的36個(gè)第一節(jié)點(diǎn),每一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)位于同一列中的3個(gè)第二節(jié)點(diǎn),即編號(hào)為1的第一節(jié)點(diǎn)對(duì)應(yīng)編號(hào)為1、37和73的三個(gè)第二節(jié)點(diǎn)。通過圖3所示的矩陣,完成了由36個(gè)第一節(jié)點(diǎn)至96個(gè)第二節(jié)點(diǎn)的映射擴(kuò)充。圖3所示的方式中,96個(gè)第二節(jié)點(diǎn)在實(shí)現(xiàn)分布式處理系統(tǒng)時(shí)是被架設(shè)在36臺(tái)服務(wù)器上。架設(shè)所使用的服務(wù)器的性能都是相同的,每一個(gè)服務(wù)器具有三個(gè)處理器,每三個(gè)節(jié)點(diǎn)被架設(shè)在同一臺(tái)服務(wù)器上。在圖3中,用虛線框表示第二節(jié)點(diǎn)所在的服務(wù)器。
雖然圖3所示的映射方式中,第一節(jié)點(diǎn)及第二節(jié)點(diǎn)的數(shù)量為非2的n次冪的配置并不是很常見,但本發(fā)明也可以適用于這種情況。
圖4所示的本發(fā)明實(shí)施例提供的一種n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的映射方式。第一節(jié)點(diǎn)的數(shù)量為19個(gè),而第二節(jié)點(diǎn)的數(shù)量為45個(gè),第二節(jié)點(diǎn)的數(shù)量是第一節(jié)點(diǎn)的數(shù)量的非整數(shù)倍。在這種情況下,n個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的p個(gè)第二節(jié)點(diǎn)采用下述3行×19列的矩陣來實(shí)現(xiàn)。第一行第二節(jié)點(diǎn)的編號(hào)順序?yàn)?-19、第二行第二節(jié)點(diǎn)的編號(hào)順序?yàn)?0-38、第三行第二節(jié)點(diǎn)的編號(hào)順序?yàn)?9-45。需要注意的是,第一行和第二行都具有19個(gè)第二節(jié)點(diǎn),而第三行僅具有7個(gè)第二節(jié)點(diǎn),其余12個(gè)第二節(jié)點(diǎn)為空閑,并不進(jìn)行編號(hào)。每一列中的第二節(jié)點(diǎn)與一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)。前7列中,三個(gè)第二節(jié)點(diǎn)對(duì)應(yīng)一個(gè)第一節(jié)點(diǎn),在后12列中,兩個(gè)第二節(jié)點(diǎn)對(duì)應(yīng)一個(gè)第一節(jié)點(diǎn)。第一行的19個(gè)第二節(jié)點(diǎn)1-19可以理解為是對(duì)應(yīng)的19個(gè)第一節(jié)點(diǎn),每一個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)位于同一列中的第二節(jié)點(diǎn),部分第一節(jié)點(diǎn)對(duì)應(yīng)三個(gè)第二節(jié)點(diǎn),部分第一節(jié)點(diǎn)對(duì)應(yīng)兩個(gè)第二節(jié)點(diǎn)。通過圖4所示的矩陣,完成了由19個(gè)第一節(jié)點(diǎn)至57個(gè)第二節(jié)點(diǎn)的映射擴(kuò)充。
圖4所示的映射方式中,57個(gè)第二節(jié)點(diǎn)在實(shí)現(xiàn)分布式處理系統(tǒng)時(shí)是被架設(shè)在19臺(tái)服務(wù)器上。架設(shè)所使用的服務(wù)器的性能都是相同的,每一個(gè)服務(wù)器具有三個(gè)處理器,每一個(gè)列的第二節(jié)點(diǎn)被架設(shè)在同一臺(tái)服務(wù)器上,部分服務(wù)器上由于只有兩個(gè)第二節(jié)點(diǎn),因此只承載兩個(gè)第二節(jié)點(diǎn)的服務(wù)器會(huì)出現(xiàn)部分空閑的處理器。在圖4中,用虛線框表示第二節(jié)點(diǎn)所在的服務(wù)器。
圖4提供的一種n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的映射方式在實(shí)際應(yīng)用中應(yīng)該是很罕見的,但這說明本發(fā)明也可以被應(yīng)用于該種情況。
基于上述n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的三種映射方式,本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)數(shù)據(jù)備份方法可以被應(yīng)用于任何的節(jié)點(diǎn)擴(kuò)充的場(chǎng)合。原來的n個(gè)第一節(jié)點(diǎn)被擴(kuò)充為p個(gè)第二節(jié)點(diǎn)(p>n),在進(jìn)行擴(kuò)充時(shí),建立一個(gè)m行n列的矩陣,m的取值滿足以下條件:m×n<p<(m+1)×n。如果p不是n的整數(shù)倍,那么在這個(gè)m行n列的矩陣中會(huì)有部分的第二節(jié)點(diǎn)空閑,空閑的第二節(jié)點(diǎn)可以位于除了第一行以外的任何位置,并不一定要被限制在最后一行。在建立了矩陣形式的擴(kuò)充映射之后,n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)建立了對(duì)應(yīng)關(guān)系:每一個(gè)第一節(jié)點(diǎn)與處于同一列中的第二節(jié)點(diǎn)相對(duì)應(yīng)。
上述實(shí)施例中,優(yōu)選的,承載第二節(jié)點(diǎn)的服務(wù)器的性能都是一致的,并且處于同一列中的第二節(jié)點(diǎn)都被架設(shè)在同一個(gè)服務(wù)器上。
在實(shí)際應(yīng)用中,并非都是如上述的理想狀態(tài)??赡懿糠值姆?wù)器會(huì)出現(xiàn)故障,此時(shí)用于替換故障服務(wù)器的新服務(wù)器不能保證與原來的服務(wù)器具有一致的性能。又比如,服務(wù)器也需要更新?lián)Q代,出于成本的考慮,服務(wù)器的更新會(huì)是分批進(jìn)行,這就會(huì)出現(xiàn)不同批用于架設(shè)第二節(jié)點(diǎn)的數(shù)臺(tái)服務(wù)器具有不同的性能的情況。
值得說明的是,上述實(shí)施例中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)有多種配置策略,但并不局限于本發(fā)明實(shí)施例所列舉的幾種實(shí)例。例如與同一第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)可以部署在一個(gè)服務(wù)器上,也可以部署在多個(gè)服務(wù)器上。
例如,如圖5所示的一種n個(gè)第一節(jié)點(diǎn)與p個(gè)第二節(jié)點(diǎn)之間的映射方式, 第一節(jié)點(diǎn)的數(shù)量m=32,第二節(jié)點(diǎn)的數(shù)量n=128。采用的矩陣與圖2所示的實(shí)施例相一致,區(qū)別在于架設(shè)128個(gè)第二節(jié)點(diǎn)的服務(wù)器有所不同。第一列的四個(gè)第二節(jié)點(diǎn)被架設(shè)在一臺(tái)具有四個(gè)處理器的服務(wù)器上。第二列的四個(gè)第二節(jié)點(diǎn)被架設(shè)在兩臺(tái)具有兩個(gè)處理器的服務(wù)器上,并且承載2號(hào)和34號(hào)節(jié)點(diǎn)的服務(wù)器的處理能力較弱,而承載66號(hào)和98號(hào)節(jié)點(diǎn)的服務(wù)器的處理能力較強(qiáng)。第三列和第四列的8個(gè)節(jié)點(diǎn)被承載于一個(gè)具有八個(gè)處理器的服務(wù)器上,一個(gè)處理器對(duì)應(yīng)一個(gè)第二節(jié)點(diǎn),處理器的運(yùn)行數(shù)據(jù)將來會(huì)存儲(chǔ)在對(duì)應(yīng)的第二節(jié)點(diǎn)中。其他列的第二節(jié)點(diǎn)的架設(shè)可以采用與前面三列的架設(shè)方式,也可以采用其他架設(shè)方式,如每4列架設(shè)在一個(gè)多處理器的服務(wù)器上,也可以某兩個(gè)列中的部分第二節(jié)點(diǎn)架設(shè)在同一多處理器的服務(wù)器上,在圖5中,同樣用虛線框表示第二節(jié)點(diǎn)所在的服務(wù)器。
同樣,圖3和圖4中的多個(gè)第二節(jié)點(diǎn)也可以被架設(shè)在具有不同處理能力服務(wù)器上,此處不再贅述。但本領(lǐng)域的技術(shù)人員可以參照?qǐng)D2和圖5,對(duì)圖3和圖4中第二節(jié)點(diǎn)的部署方式進(jìn)行改動(dòng),將第二節(jié)點(diǎn)分布在性能不同的服務(wù)器上。
在實(shí)際的應(yīng)用中,在服務(wù)器上架設(shè)第二節(jié)點(diǎn)可以采用多種方式,并不局限于圖5所示的方式,需要說明的是,圖5所列舉的方是為了說明用于承載第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力不同,而不是為了限制第二節(jié)點(diǎn)的架設(shè)方式。
下面以圖6a、圖6b和圖6c說明在服務(wù)器上架設(shè)第二節(jié)點(diǎn)的不同方式。
如圖6a所示,在具有4個(gè)處理器的單臺(tái)服務(wù)器606上架設(shè)位于同一列中的編號(hào)分別為32、64、96、128的4個(gè)第二節(jié)點(diǎn)。每一個(gè)第二節(jié)點(diǎn)602是第二數(shù)據(jù)庫中的一個(gè)分區(qū)數(shù)據(jù)庫,每一個(gè)分區(qū)數(shù)據(jù)庫架設(shè)在一個(gè)處理器604上。在服務(wù)器606中,在4個(gè)處理器604與4個(gè)分區(qū)數(shù)據(jù)庫602之間通過存儲(chǔ)器608進(jìn)行數(shù)據(jù)的存取,存儲(chǔ)器608是共用的,4個(gè)處理器604和4個(gè)分區(qū)數(shù)據(jù)庫602共享同一個(gè)存儲(chǔ)器608。
如圖6b所示,在多臺(tái)具有單個(gè)處理器的服務(wù)器616上架設(shè)多個(gè)第二節(jié)點(diǎn)。 每一個(gè)第二節(jié)點(diǎn)612同樣是一個(gè)分區(qū)數(shù)據(jù)庫,每一個(gè)分區(qū)數(shù)據(jù)庫架設(shè)在一臺(tái)服務(wù)器616上,該服務(wù)器616具有自己的處理器614和存儲(chǔ)器618。在處理器614與第二節(jié)點(diǎn)612之間通過各自的存儲(chǔ)器618進(jìn)行數(shù)據(jù)的存取。多臺(tái)服務(wù)器616架設(shè)在一個(gè)統(tǒng)一的平臺(tái)610上,以組成一個(gè)分布式處理系統(tǒng)。
如圖6c所示,在多臺(tái)具有多個(gè)處理器的服務(wù)器上架設(shè)多個(gè)第二節(jié)點(diǎn)。圖6c可以認(rèn)為是對(duì)于圖6a的一種擴(kuò)充,在一個(gè)平臺(tái)620上架設(shè)多臺(tái)服務(wù)器626組成一個(gè)新的分布式系統(tǒng)。每一臺(tái)服務(wù)器626具有多個(gè)處理器624,在每一臺(tái)服務(wù)器626上架設(shè)多個(gè)分區(qū)數(shù)據(jù)庫622,每一個(gè)分區(qū)數(shù)據(jù)庫622就是一個(gè)第二節(jié)點(diǎn),每一個(gè)分區(qū)數(shù)據(jù)庫622架設(shè)在一個(gè)處理器624上。針對(duì)每一臺(tái)服務(wù)器626,在多個(gè)處理器624與多個(gè)分區(qū)數(shù)據(jù)庫622之間通過存儲(chǔ)器628進(jìn)行數(shù)據(jù)的存取,存儲(chǔ)器628是共用的,多個(gè)處理器624和多個(gè)分區(qū)數(shù)據(jù)庫622共享同一個(gè)存儲(chǔ)器628。
基于上述幾種在服務(wù)器上架設(shè)第二節(jié)點(diǎn)的實(shí)例,第二數(shù)據(jù)庫中的p個(gè)第二節(jié)點(diǎn)在服務(wù)器上的架設(shè)也包括多種部署方式,第二數(shù)據(jù)庫中的p個(gè)第二節(jié)點(diǎn)中部署在多個(gè)性能相同或性能不同的服務(wù)器上,也可以全部部署在同一服務(wù)器上,而每個(gè)服務(wù)器上包括至少一個(gè)處理器,因?yàn)槊總€(gè)第二節(jié)點(diǎn)對(duì)應(yīng)一個(gè)承載該第二節(jié)點(diǎn)的處理器。
在步驟102進(jìn)行數(shù)據(jù)分發(fā)時(shí),依據(jù)上述實(shí)施例中第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的擴(kuò)充映射關(guān)系,將第一節(jié)點(diǎn)上的存量動(dòng)態(tài)數(shù)據(jù)從存儲(chǔ)介質(zhì)上恢復(fù)并分發(fā)至各個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)上。具體的,在將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),分發(fā)至第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)上時(shí),采用如下的規(guī)則:
首先,原先保存在一個(gè)第一節(jié)點(diǎn)上的數(shù)據(jù)被分發(fā)至與該第一節(jié)點(diǎn)對(duì)應(yīng)的數(shù)個(gè)第二節(jié)點(diǎn)上,即在矩陣中處于同一個(gè)列中的第二節(jié)點(diǎn)上。對(duì)于同一個(gè)第一節(jié)點(diǎn),該第一節(jié)點(diǎn)上的數(shù)據(jù)始終在矩陣與該第一節(jié)點(diǎn)對(duì)應(yīng)的一個(gè)列中進(jìn)行分發(fā),不會(huì)出現(xiàn)跨列數(shù)據(jù)分發(fā),進(jìn)而提高數(shù)據(jù)分發(fā)的效率。原先保存在各個(gè)第一節(jié)點(diǎn) 上的數(shù)據(jù)量不同,在分發(fā)時(shí)在各個(gè)列內(nèi)進(jìn)行分發(fā)的數(shù)據(jù)總量也會(huì)有所不同。
其次,在每一個(gè)列內(nèi),按照承載各個(gè)第二節(jié)點(diǎn)的服務(wù)器的處理能力來進(jìn)行數(shù)據(jù)分發(fā)。處理能力強(qiáng)的第二節(jié)點(diǎn)會(huì)被分到更多的數(shù)據(jù),而處理能力弱的第二節(jié)點(diǎn)會(huì)被分到較少的數(shù)據(jù),由此進(jìn)行更合理的負(fù)載分配,以獲得更好的數(shù)據(jù)處理速度。
具體的,若承載與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力相同,則步驟102具體包括:將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),平均地分發(fā)給第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)。
若承載與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力不同,則步驟102具體包括:將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),按照承載與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力,按需地分發(fā)給第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)。
例如,承載第二節(jié)點(diǎn)的服務(wù)器的性能相同時(shí),采用圖2-圖4所示的方式,在每一個(gè)列內(nèi)的數(shù)個(gè)第二節(jié)點(diǎn)會(huì)被平均分發(fā)數(shù)據(jù)。以圖2所示的方式為例,原先保存在一個(gè)第一節(jié)點(diǎn)上的數(shù)據(jù)會(huì)被平均地分配到4個(gè)第二節(jié)點(diǎn)上。
如果承載節(jié)點(diǎn)的服務(wù)器的性能是不同的,那么分發(fā)到第二節(jié)點(diǎn)的數(shù)據(jù)將依據(jù)節(jié)點(diǎn)的處理能力來決定。例如采用圖5所示的方式,第一列中編號(hào)為1、33、65和97的四個(gè)第二節(jié)點(diǎn)架設(shè)在一臺(tái)具有四個(gè)處理器的服務(wù)器上,這四個(gè)節(jié)點(diǎn)的處理能力相同,因此原先屬于編號(hào)為1的第一節(jié)點(diǎn)的數(shù)據(jù)將在這四個(gè)第二節(jié)點(diǎn)中平均地分發(fā)。類似的情況也應(yīng)用于第三列、第四列的第二節(jié)點(diǎn)上,雖然第三列和第四列的8個(gè)節(jié)點(diǎn)是由同一臺(tái)服務(wù)器實(shí)現(xiàn),但是對(duì)于每一個(gè)列中的第二節(jié)點(diǎn)來說,在一個(gè)列內(nèi)各個(gè)第二節(jié)點(diǎn)的處理能力還是相同的,因此在編號(hào)為3、35、67和99的第二節(jié)點(diǎn)內(nèi)將平均分發(fā)原本屬于編號(hào)為3的第一節(jié)點(diǎn)的數(shù)據(jù)。在編號(hào)為4、36、68和100的第二節(jié)點(diǎn)內(nèi)將平均分發(fā)原本屬于編號(hào)為4的第一節(jié)點(diǎn)的數(shù)據(jù)。在第二列中,第二列的四個(gè)第二節(jié)點(diǎn)被架設(shè)在兩臺(tái)具有兩個(gè)處理器的服務(wù)器上,承載2號(hào)和34號(hào)節(jié)點(diǎn)的服務(wù)器的處理能力較弱,而承載66號(hào) 和98號(hào)節(jié)點(diǎn)的服務(wù)器的處理能力較強(qiáng)。因此,在第二列中第二節(jié)點(diǎn)的數(shù)據(jù)分發(fā)并不是平均的,具有較強(qiáng)處理能力的66號(hào)和99號(hào)節(jié)點(diǎn)將被分發(fā)到更多的數(shù)據(jù),而處理能力較弱的2號(hào)和34號(hào)節(jié)點(diǎn)將被分發(fā)到較少的數(shù)據(jù)。
同樣的,如果圖3和圖4所示的方式中的第二節(jié)點(diǎn)被架設(shè)在具有不同處理能力服務(wù)器上,在對(duì)第二節(jié)點(diǎn)進(jìn)行數(shù)據(jù)分發(fā)時(shí)也會(huì)考慮節(jié)點(diǎn)的數(shù)據(jù)處理能力,依據(jù)節(jié)點(diǎn)處理能力的強(qiáng)弱來進(jìn)行負(fù)載的均衡,以達(dá)到最佳的整體性能。
至此,已經(jīng)完成了存量的動(dòng)態(tài)數(shù)據(jù)在新的分布式系統(tǒng)上的遷徙和分發(fā)。
步驟102之后,還包括步驟103和步驟104。
步驟103,將第一數(shù)據(jù)庫的第一節(jié)點(diǎn)上的增量數(shù)據(jù)直接導(dǎo)入到與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)中;其中,第一節(jié)點(diǎn)上的增量數(shù)據(jù)為從備份啟動(dòng)至第一節(jié)點(diǎn)上的存量數(shù)據(jù)全部分發(fā)至與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的時(shí)間段內(nèi)存儲(chǔ)在第一節(jié)點(diǎn)上的第一處理器的運(yùn)行數(shù)據(jù);
步驟104,啟動(dòng)第二節(jié)點(diǎn)接收承載第二節(jié)點(diǎn)的第二處理器的運(yùn)行數(shù)據(jù)。
其中,針對(duì)同一第一節(jié)點(diǎn),該第一節(jié)點(diǎn)上的增量數(shù)據(jù)可由第一標(biāo)記和第二標(biāo)記識(shí)別,第一標(biāo)識(shí)和第二標(biāo)記可以為時(shí)間戳,第二標(biāo)識(shí)的時(shí)間戳晚于第一標(biāo)記的時(shí)間戳。第一標(biāo)記的時(shí)間戳為開始進(jìn)行備份的時(shí)間,用于標(biāo)記該第一節(jié)點(diǎn)上的存量數(shù)據(jù),第二標(biāo)識(shí)的時(shí)間戳是該第一節(jié)點(diǎn)上的存量數(shù)據(jù)全部分發(fā)至對(duì)應(yīng)的第二節(jié)點(diǎn)上的時(shí)間,則該第一節(jié)點(diǎn)的增量數(shù)據(jù),是指在第一標(biāo)識(shí)的時(shí)間戳與第二標(biāo)識(shí)的時(shí)間戳之間在該第一節(jié)點(diǎn)上新增加的數(shù)據(jù)。
需要說明的是,雖然在此處以時(shí)間戳作為第一標(biāo)記和第二標(biāo)記的實(shí)例進(jìn)行說明,但本領(lǐng)域的技術(shù)人員也可以采用其他的標(biāo)記來對(duì)存量數(shù)據(jù)和增量數(shù)據(jù)進(jìn)行區(qū)分。但存量數(shù)據(jù)和增量數(shù)據(jù)的產(chǎn)生原理在此處已經(jīng)做了揭示:存量數(shù)據(jù)是指開始實(shí)現(xiàn)本發(fā)明的方法之前已經(jīng)存在的數(shù)據(jù),而增量數(shù)據(jù)是指在對(duì)前述的存量數(shù)據(jù)進(jìn)行備份和分發(fā)的過程中新產(chǎn)生的數(shù)據(jù)。
與存量數(shù)據(jù)相比,增量數(shù)據(jù)的數(shù)據(jù)量會(huì)小很多,因此沒有必要采用與存量數(shù)據(jù)類似的方法來進(jìn)行遷徙。對(duì)于增量數(shù)據(jù)來說,能夠在兩個(gè)數(shù)據(jù)庫(或者分 布式處理系統(tǒng))之間進(jìn)行快速的數(shù)據(jù)移動(dòng)的方法是比較好的選擇。在一種實(shí)現(xiàn)方式中,選擇遠(yuǎn)程的數(shù)據(jù)庫游標(biāo)(簡(jiǎn)稱遠(yuǎn)程游標(biāo))來實(shí)現(xiàn)增量數(shù)據(jù)的遷徙,即使用遠(yuǎn)程游標(biāo)將增量的動(dòng)態(tài)數(shù)據(jù)從第一數(shù)據(jù)庫導(dǎo)入到第二數(shù)據(jù)庫中。
一種優(yōu)選的實(shí)現(xiàn)方式如下:首先在第一數(shù)據(jù)庫(原分布式處理系統(tǒng)中)識(shí)別出增量數(shù)據(jù),比如通過時(shí)間戳識(shí)別出具有介于第一標(biāo)記和第二標(biāo)記之間的時(shí)間戳的數(shù)據(jù)為增量數(shù)據(jù)。這些增量數(shù)據(jù)會(huì)分布在各個(gè)第一節(jié)點(diǎn)上。在各個(gè)第一節(jié)點(diǎn)上設(shè)置游標(biāo),然后建立第一數(shù)據(jù)庫和第二數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)移路徑,也稱為網(wǎng)絡(luò)管道,這些網(wǎng)絡(luò)管道的兩端分別是第一節(jié)點(diǎn)和與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)。在進(jìn)行增量數(shù)據(jù)的遷徙時(shí)也會(huì)利用到前述的映射擴(kuò)充方式和數(shù)據(jù)分發(fā)規(guī)則,一個(gè)第一節(jié)點(diǎn)上的增量數(shù)據(jù)只會(huì)被導(dǎo)入到與之相對(duì)應(yīng)的第二節(jié)點(diǎn)上(即在映射擴(kuò)充的矩陣中處于同一列中的第二節(jié)點(diǎn))??梢越⒁粋€(gè)第一節(jié)點(diǎn)和數(shù)個(gè)第二節(jié)點(diǎn)之間的數(shù)個(gè)網(wǎng)絡(luò)管道來進(jìn)行增量數(shù)據(jù)的導(dǎo)入,在進(jìn)行增量數(shù)據(jù)的導(dǎo)入和分發(fā)時(shí),也會(huì)考慮第二節(jié)點(diǎn)的數(shù)據(jù)處理能力,根據(jù)數(shù)據(jù)處理能力來決定分發(fā)的數(shù)據(jù)量。
通過遠(yuǎn)程游標(biāo)的方法,可以從第一數(shù)據(jù)庫(源端數(shù)據(jù)庫)抽取數(shù)據(jù)存儲(chǔ)在第二數(shù)據(jù)庫(目標(biāo)端數(shù)據(jù)庫),這個(gè)方法的好處在于中間數(shù)據(jù)不用落于磁盤或者其他存儲(chǔ)介質(zhì)上,從而能夠節(jié)省大量的數(shù)據(jù)讀寫時(shí)間,而且使用起來簡(jiǎn)單。
完成增量數(shù)據(jù)的轉(zhuǎn)移之后,就完成了將動(dòng)態(tài)數(shù)據(jù)從第一數(shù)據(jù)庫向第二數(shù)據(jù)庫的備份。需要說明的是,雖然增量數(shù)據(jù)的量不大,但進(jìn)行增量數(shù)據(jù)的轉(zhuǎn)移也需要一定的時(shí)間,在這段時(shí)間內(nèi),還會(huì)產(chǎn)生新的數(shù)據(jù),對(duì)于這部分的新數(shù)據(jù),由于其數(shù)據(jù)量十分小,可以采用步驟104來解決,具體為:在完成存量數(shù)據(jù)備份后(即第二標(biāo)記所在的時(shí)間點(diǎn)),第二數(shù)據(jù)庫即開始工作,正常接受并產(chǎn)生自第二標(biāo)記所對(duì)應(yīng)的時(shí)間開始產(chǎn)生的數(shù)據(jù),這樣,將具有第一標(biāo)記和第二標(biāo)記之間的時(shí)間戳的數(shù)據(jù)追平至第二數(shù)據(jù)庫中后,第二數(shù)據(jù)庫中的數(shù)據(jù)就能保持完整。
綜上,本發(fā)明的動(dòng)態(tài)數(shù)據(jù)的備份方法具有較好的可擴(kuò)展性,能夠根據(jù)需求 靈活對(duì)第二數(shù)據(jù)庫的多個(gè)第二節(jié)點(diǎn)進(jìn)行擴(kuò)充,并根據(jù)擴(kuò)充后的第二節(jié)點(diǎn)進(jìn)行數(shù)據(jù)分發(fā)。該動(dòng)態(tài)數(shù)據(jù)的備份方法能夠以較低的成本和較快的速度完成分布式處理系統(tǒng)上的大量動(dòng)態(tài)數(shù)據(jù)的遷徙和備份。
上述方法流程中,通過將第一數(shù)據(jù)庫分為多個(gè)分區(qū)數(shù)據(jù)庫,即n個(gè)第一節(jié)點(diǎn),將第二數(shù)據(jù)庫分為多個(gè)分區(qū)數(shù)據(jù)庫,即p個(gè)第二節(jié)點(diǎn),并且預(yù)先設(shè)置了任一第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),這樣在進(jìn)行數(shù)據(jù)備份時(shí),通過將第一數(shù)據(jù)庫中任一個(gè)第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,并將該第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù)分發(fā)至第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)上,即通過n條復(fù)制路徑將第一數(shù)據(jù)庫的存量數(shù)據(jù)復(fù)制到第二數(shù)據(jù)庫中,這n條復(fù)制路徑可以同時(shí)進(jìn)行,互不干擾,與現(xiàn)有技術(shù)中只通過一條復(fù)制路徑進(jìn)行大批量存量數(shù)據(jù)的備份相比,n條復(fù)制路徑的高可用性,大大縮短了數(shù)據(jù)備份的時(shí)間,提高了整個(gè)系統(tǒng)數(shù)據(jù)備份的效率,而且因預(yù)先設(shè)置了第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射關(guān)系,使得數(shù)據(jù)備份時(shí),只將指定第一節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)按照指定路徑復(fù)制給與指定第一節(jié)點(diǎn)存在映射關(guān)系的第二節(jié)點(diǎn),而不會(huì)分發(fā)給與指定第一節(jié)點(diǎn)不存在映射關(guān)系的第二節(jié)點(diǎn),避免出現(xiàn)遷徙后的存量數(shù)據(jù)在多個(gè)節(jié)點(diǎn)上難以合理分配的問題,也避免了系統(tǒng)升級(jí)前后原處理系統(tǒng)和新處理系統(tǒng)上的數(shù)據(jù)不一致問題,因此本發(fā)明實(shí)施例提高了數(shù)據(jù)遷徙的高可靠性。
上述實(shí)施例是提供給本領(lǐng)域內(nèi)的專業(yè)技術(shù)人員來實(shí)現(xiàn)或使用本發(fā)明的,熟悉本領(lǐng)域的人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對(duì)上述實(shí)施例做出種種修改或變化,因而本發(fā)明的保護(hù)范圍并不被上述實(shí)施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的最大范圍。
基于本發(fā)明的上述方法流程,本發(fā)明實(shí)施例還提供一種動(dòng)態(tài)數(shù)據(jù)備份裝置,這些裝置的具體內(nèi)容參見上述方法部分,此處不再累述。
如圖7所示的一種動(dòng)態(tài)數(shù)據(jù)備份裝置,包括:
第一處理單元701,用于將第一數(shù)據(jù)庫的第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,第一節(jié)點(diǎn)上的存量數(shù)據(jù)為備份啟動(dòng)時(shí)第一節(jié)點(diǎn)上已 存儲(chǔ)的承載第一節(jié)點(diǎn)的第一處理器的運(yùn)行數(shù)據(jù),第一數(shù)據(jù)庫中包括n個(gè)第一節(jié)點(diǎn),任兩個(gè)第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)不同或者部分第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)相同;
第二處理單元702,用于將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),分發(fā)至第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),第二數(shù)據(jù)庫中包括p個(gè)第二節(jié)點(diǎn),第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)至少為1個(gè),p大于n。
進(jìn)一步地,還包括第三處理單元;
第三處理單元,用于在第二處理單元702將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),分發(fā)至第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)之后,將第一數(shù)據(jù)庫的第一節(jié)點(diǎn)上的增量數(shù)據(jù)直接導(dǎo)入到與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)中,并啟動(dòng)第二節(jié)點(diǎn)接收承載第二節(jié)點(diǎn)的第二處理器的運(yùn)行數(shù)據(jù);其中,第一節(jié)點(diǎn)上的增量數(shù)據(jù)為從備份啟動(dòng)至第一節(jié)點(diǎn)上的存量數(shù)據(jù)全部分發(fā)至與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的時(shí)間段內(nèi)存儲(chǔ)在第一節(jié)點(diǎn)上的第一處理器的運(yùn)行數(shù)據(jù)。
進(jìn)一步地,第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)為實(shí)體存儲(chǔ)介質(zhì)或者為一個(gè)實(shí)體存儲(chǔ)介質(zhì)的一個(gè)存儲(chǔ)分區(qū)。
進(jìn)一步地,若第二數(shù)據(jù)庫中第二節(jié)點(diǎn)的數(shù)量p是第一數(shù)據(jù)庫中第一節(jié)點(diǎn)的數(shù)量n的整數(shù)倍n,則每個(gè)第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)為n個(gè)。
進(jìn)一步地,第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)部署在一個(gè)服務(wù)器上;或者,第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)部署在多個(gè)服務(wù)器上。
進(jìn)一步地,第二處理單元702具體用于:
若承載與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力相同,則將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),平均地分發(fā)給第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn);
若承載與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力不同,則將第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù),按照承載與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)的服務(wù)器或者處理器的處理能力,按需地分發(fā)給第二數(shù)據(jù)庫中與第一節(jié)點(diǎn) 對(duì)應(yīng)的第二節(jié)點(diǎn)。
上述實(shí)施例中,通過將第一數(shù)據(jù)庫分為多個(gè)分區(qū)數(shù)據(jù)庫,即n個(gè)第一節(jié)點(diǎn),將第二數(shù)據(jù)庫分為多個(gè)分區(qū)數(shù)據(jù)庫,即p個(gè)第二節(jié)點(diǎn),并且預(yù)先設(shè)置了任一第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn),這樣在進(jìn)行數(shù)據(jù)備份時(shí),通過將第一數(shù)據(jù)庫中任一個(gè)第一節(jié)點(diǎn)上的存量數(shù)據(jù)復(fù)制至第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上,并將該第一節(jié)點(diǎn)的目標(biāo)存儲(chǔ)介質(zhì)上的存量數(shù)據(jù)分發(fā)至第二數(shù)據(jù)庫中與第一節(jié)點(diǎn)對(duì)應(yīng)的第二節(jié)點(diǎn)上,即通過n條復(fù)制路徑將第一數(shù)據(jù)庫的存量數(shù)據(jù)復(fù)制到第二數(shù)據(jù)庫中,這n條復(fù)制路徑可以同時(shí)進(jìn)行,互不干擾,與現(xiàn)有技術(shù)中只通過一條復(fù)制路徑進(jìn)行大批量存量數(shù)據(jù)的備份相比,n條復(fù)制路徑的高可用性,大大縮短了數(shù)據(jù)備份的時(shí)間,提高了整個(gè)系統(tǒng)數(shù)據(jù)備份的效率,而且因預(yù)先設(shè)置了第一節(jié)點(diǎn)與第二節(jié)點(diǎn)之間的映射關(guān)系,使得數(shù)據(jù)備份時(shí),只將指定第一節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)按照指定路徑復(fù)制給與指定第一節(jié)點(diǎn)存在映射關(guān)系的第二節(jié)點(diǎn),而不會(huì)分發(fā)給與指定第一節(jié)點(diǎn)不存在映射關(guān)系的第二節(jié)點(diǎn),避免出現(xiàn)遷徙后的存量數(shù)據(jù)在多個(gè)節(jié)點(diǎn)上難以合理分配的問題,也避免了系統(tǒng)升級(jí)前后原處理系統(tǒng)和新處理系統(tǒng)上的數(shù)據(jù)不一致問題,因此本發(fā)明實(shí)施例提高了數(shù)據(jù)遷徙的高可靠性。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。