2012-07-11 141 views
2

我想知道什麼方法將您的巨大的舊數據遷移到新的系統數據庫(哪裏表名和列不同於舊系統 - 需要映射表和列)?最佳數據庫遷移方法?

1)是否應該是數據庫到數據庫(意味着編寫腳本從舊數據庫中提取數據並仔細映射它們並將其放入新的數據庫)?在這之上寫單元測試來檢查整數。

(OR)

2)我應該使用新的系統模型(使用Java持久性API)程序提取舊數據庫中的數據,然後把它放在對象(Hibernate或者JPA實體對象),並堅持他們嗎?

回答

4

與第一個一起去。這就是ETL工具的誕生。

我不會推薦編寫一個Java程序。開發和測試一次性使用會花費很大的努力。使用正確的工具來完成這項工作。

+0

+1,ETL工具是爲了一個很好的理由而編寫的。 – Ollie 2012-07-11 10:19:46

+1

確實如此,如果原始數據存儲很大,那麼沒有持久性工具就能夠在數據庫遷移工具上花費時間。 – DataNucleus 2012-07-11 10:33:12

+0

對不起,我並不是說爲了這個目的創建全新的實體。實際上,我們已經爲我們的新系統建立了模型,所以想着使用新系統模型來填充舊系統中的提取數據並堅持是否是一個好主意?但是,我認爲DataNucleus認爲數據庫到數據庫方法的性能會更高。 – 2012-07-11 11:38:46

2

我目前正在做一個從MySQL到Oracle的數據遷移,我發現最好遵循這個過程。

  1. 轉儲舊的數據庫結構和新的數據庫系統
  2. 上重新創建它指定使用舊的結構,這兩個系統
  3. 導入舊數據到新的系統中的數據地圖。
  4. 創建新的數據庫結構。
  5. 編寫SQL語句,將您的數據從舊結構導入新結構。

這將最大限度地減少您可能遇到的任何數據完整性問題和數據映射問題。