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