2012-06-11 25 views
0

現在我有一個擁有8百萬條記錄的Oracle數據庫,我需要將它們移動到MongoDB。 我知道如何使用導入命令將一些數據導入到MongoDB並使用JSON文件,但我想知道是否有更好的方法來解決這些問題。從Oracle導出800萬條記錄到MongoDB

  • 由於執行時間的限制,如何處理?
  • 數據庫每秒都在增加,因此計劃如何確保每條記錄都已移動。

回答

1

由於執行時間的限制,如何處理?

不要使用JSON導出/導入。相反,您應該編寫一個讀取數據的腳本,將其轉換爲適用於MongoDB的正確格式,然後將其插入到那裏。

這有幾個原因:

  • 你的表/集將不會被安排以同樣的方式。 (如果他們是,那麼爲什麼你使用MongoDB?
  • 這將允許您監視操作的進度。尤其是,您可以輸出到每1000個條目左右的日誌文件以獲得一些進展並能夠從故障中恢復。
  • 這將測試您的新MongoDB代碼。

數據庫每秒都在增加,所以計劃如何確保每條記錄都已移動。

這裏有兩種策略。

  1. 跟蹤更新的條目,並在新更新的記錄上重新運行您的腳本,直到您被趕上。
  2. 在運行腳本以複製數據時寫入兩個數據庫。然後,一旦完成了腳本以及所有最新的腳本,就可以切換到僅使用MongoDB。

我個人建議#2,這是最簡單的方法來管理和測試,同時保持正常運行時間。這仍然是很多工作,但是這將允許過渡發生。

+0

謝謝你的回答。 我忘了說我使用Codeigniter PHP框架。 –

+0

沒問題。感謝我的答案的最佳方式是將我的答覆標記爲正確的答案並給予贊成。 –

+0

現在我編寫一個腳本,用於從Oracle讀取數據,並使用MongoDB類將我讀取的結果插入到MongoDB中。我還設置了每次執行的記錄限制。這是你建議我的方式嗎? –