什么是Java數(shù)據(jù)庫(kù)遷移?
Java數(shù)據(jù)庫(kù)遷移是從一個(gè)Java數(shù)據(jù)庫(kù)到另一個(gè)Java數(shù)據(jù)庫(kù)的任何類(lèi)型的數(shù)據(jù)移動(dòng)。
Java數(shù)據(jù)庫(kù)遷移有多種形式。可能是同類(lèi)Java數(shù)據(jù)庫(kù)的遷移,比如,將一臺(tái)服務(wù)器上的MySQLJava數(shù)據(jù)庫(kù)的數(shù)據(jù)遷移到另外一臺(tái)服務(wù)器上的MySQLJava數(shù)據(jù)庫(kù)上。
也有可能是不同類(lèi)型Java數(shù)據(jù)庫(kù)的遷移。比如將數(shù)據(jù)從MySQL遷移到Cassandra,這種情況下,你可能需要做數(shù)據(jù)轉(zhuǎn)換。
在其他情況下,Java數(shù)據(jù)庫(kù)遷移可能意味著將數(shù)據(jù)從一種類(lèi)型的存儲(chǔ)介質(zhì)(如磁帶)移動(dòng)到另外一種類(lèi)型的存儲(chǔ)介質(zhì)(如硬盤(pán))。在備份系統(tǒng)和生產(chǎn)系統(tǒng)之間移動(dòng)數(shù)據(jù),這種類(lèi)型的Java數(shù)據(jù)庫(kù)遷移很常見(jiàn)。
Java數(shù)據(jù)庫(kù)遷移的數(shù)據(jù)通道可以有多種。目前,通過(guò)網(wǎng)絡(luò)連接傳輸數(shù)據(jù)是常見(jiàn)的方法,你也可以在同一系統(tǒng)內(nèi)將數(shù)據(jù)從一個(gè)磁盤(pán)移動(dòng)到另一個(gè)磁盤(pán),或者使用便攜式磁盤(pán)(如移動(dòng)硬盤(pán))在服務(wù)器之間傳輸數(shù)據(jù)。
Java數(shù)據(jù)庫(kù)遷移需要多長(zhǎng)時(shí)間?
哪些因素會(huì)影響遷移時(shí)間?在規(guī)劃Java數(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è)磁盤(pán)復(fù)制到另外一個(gè)磁盤(pán),那么磁盤(pán)讀寫(xiě)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)操作流程越多,Java數(shù)據(jù)庫(kù)遷移就越慢。在必須將數(shù)據(jù)從一種類(lèi)型的Java數(shù)據(jù)庫(kù)遷移到另外一種類(lèi)型的情況下尤其如此。
要優(yōu)化Java數(shù)據(jù)庫(kù)遷移速度,請(qǐng)注意對(duì)這些因素的控制。
數(shù)據(jù)轉(zhuǎn)換與Java數(shù)據(jù)庫(kù)遷移速度
在文章結(jié)束前,讓我們重新審視上面列出的第三個(gè)因素:數(shù)據(jù)轉(zhuǎn)換。在很多情況下,如果要提高Java數(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ù)從一種類(lèi)型的Java數(shù)據(jù)庫(kù)無(wú)縫遷移到另外一種類(lèi)型的Java數(shù)據(jù)庫(kù),而不需要人進(jìn)行手動(dòng)轉(zhuǎn)換工作。