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