時(shí)間緊急!數(shù)據(jù)庫(kù)遷移怎么才能更快?
問(wèn)數(shù)據(jù)庫(kù)遷移需要多長(zhǎng)時(shí)間,就好像問(wèn)去度假需要多少錢一樣。答案,不同情況下,會(huì)有很大差異。那么,到底哪些因素會(huì)影響數(shù)據(jù)遷移所需時(shí)間長(zhǎng)短?這是我們本文要探討的。
什么是數(shù)據(jù)庫(kù)遷移?
數(shù)據(jù)庫(kù)遷移是從一個(gè)數(shù)據(jù)庫(kù)到另一個(gè)數(shù)據(jù)庫(kù)的任何類型的數(shù)據(jù)移動(dòng)。
數(shù)據(jù)庫(kù)遷移有多種形式。可能是同類數(shù)據(jù)庫(kù)的遷移,比如,將一臺(tái)服務(wù)器上的MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)遷移到另外一臺(tái)服務(wù)器上的MySQL數(shù)據(jù)庫(kù)上。
也有可能是不同類型數(shù)據(jù)庫(kù)的遷移。比如將數(shù)據(jù)從MySQL遷移到Cassandra,這種情況下,你可能需要做數(shù)據(jù)轉(zhuǎn)換。
在其他情況下,數(shù)據(jù)庫(kù)遷移可能意味著將數(shù)據(jù)從一種類型的存儲(chǔ)介質(zhì)(如磁帶)移動(dòng)到另外一種類型的存儲(chǔ)介質(zhì)(如硬盤)。在備份系統(tǒng)和生產(chǎn)系統(tǒng)之間移動(dòng)數(shù)據(jù),這種類型的數(shù)據(jù)庫(kù)遷移很常見。
數(shù)據(jù)庫(kù)遷移的數(shù)據(jù)通道可以有多種。目前,通過(guò)網(wǎng)絡(luò)連接傳輸數(shù)據(jù)是最常見的方法,你也可以在同一系統(tǒng)內(nèi)將數(shù)據(jù)從一個(gè)磁盤移動(dòng)到另一個(gè)磁盤,或者使用便攜式磁盤(如移動(dòng)硬盤)在服務(wù)器之間傳輸數(shù)據(jù)。
數(shù)據(jù)庫(kù)遷移需要多長(zhǎng)時(shí)間?
哪些因素會(huì)影響遷移時(shí)間?在規(guī)劃數(shù)據(jù)庫(kù)遷移時(shí),你需要了解三個(gè)主要因素:
1、你需要傳多少數(shù)據(jù)。更多的數(shù)據(jù)意味著更長(zhǎng)的遷移時(shí)間。
2、你如何移動(dòng)數(shù)據(jù)。你是通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)嗎?如果這樣,你的帶寬是多少?如果是從一個(gè)磁盤復(fù)制到另外一個(gè)磁盤,那么磁盤讀寫I/O是多少?(注意,理論上的速度通常很難實(shí)現(xiàn)。)
3、需要轉(zhuǎn)換多少數(shù)據(jù),以及如何簡(jiǎn)化流程來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)換。你需要進(jìn)行的轉(zhuǎn)換越多,數(shù)據(jù)轉(zhuǎn)換手動(dòng)操作流程越多,數(shù)據(jù)庫(kù)遷移就越慢。在必須將數(shù)據(jù)從一種類型的數(shù)據(jù)庫(kù)遷移到另外一種類型的情況下尤其如此。
要優(yōu)化數(shù)據(jù)庫(kù)遷移速度,請(qǐng)注意對(duì)這些因素的控制。
數(shù)據(jù)轉(zhuǎn)換與數(shù)據(jù)庫(kù)遷移速度
在文章結(jié)束前,讓我們重新審視上面列出的第三個(gè)因素:數(shù)據(jù)轉(zhuǎn)換。在很多情況下,如果要提高數(shù)據(jù)庫(kù)遷移速度,數(shù)據(jù)轉(zhuǎn)換是最重要的因素。
數(shù)據(jù)轉(zhuǎn)換是大多數(shù)情況下你能控制的唯一因素。你通常是無(wú)法控制傳輸?shù)臄?shù)據(jù)量,你也無(wú)法控制傳輸數(shù)據(jù)的方式,只能使用可用的傳輸方式。
但你可以控制的是數(shù)據(jù)轉(zhuǎn)換方式及流程的自動(dòng)化程度。理想狀態(tài)下,你將利用數(shù)據(jù)轉(zhuǎn)換工具,允許數(shù)據(jù)從一種類型的數(shù)據(jù)庫(kù)無(wú)縫遷移到另外一種類型的數(shù)據(jù)庫(kù),而不需要人進(jìn)行手動(dòng)轉(zhuǎn)換工作。