2009-09-22 163 views
0

我有一個大的(幾個GB),伯克利,我想從窗口(2K)到Linux(或者紅帽或Ubuntu)遷移的數據庫。我不知道如何去做這件事。我可以只移動數據庫文件,還是需要特殊的轉換工具?Berkeley DB的平臺遷移

回答

1

有一個跨平臺的文件傳輸工具描述here

您可能還需要關心你的機器上的字節順序,但是這討論有點here

如果您使用的是Java伯克利雖然它不應該的問題?

+0

我正在使用C++綁定。順便說一句,我看着你提供的鏈接。我不確定它是否會遷移數據,相反,它似乎允許瀏覽不同平臺上的文件 - 除非我錯了? – scoobydoo 2009-09-23 17:10:51

+0

還有其他建議嗎?我不認爲這是正確的答案... – scoobydoo 2009-09-25 15:42:54

+0

我認爲這個工具可以透明地處理文件兼容性問題。我認爲,如果你想讓操作系統發揮出色,然後讓Berkeley DB在其他平臺上發揮出色,那麼你應該設置。無論如何,最好的祝願;我的知識與你的問題是一脈相承的。 – John 2009-09-25 16:35:46

3

數據庫和日誌文件可以在不同的端系統的便攜性。 Berkeley DB會識別它所在的系統的種類,並相應地交換它所管理的數據結構,組成數據庫本身。 Berkeley DB的區域文件(內存映射)不可移植。這並不是什麼大不了的事,因爲他們的區域文件保存了緩存和鎖定,因爲你的應用程序在轉換過程中不會運行,將會在新系統上重新創建。但是,要小心,Berkeley DB不知道數據中的字節順序或類型(在您的鍵和值中,存儲在「DBT」處)。您的應用程序代碼負責瞭解它正在運行什麼樣的系統,它如何存儲數據(大小數據)以及如何轉換數據(或簡單重新訪問)。另外,密切關注你的btree比較函數。這也可能因系統架構而異。

數據庫和日誌文件也可跨操作系統使用相同的警告與字節序 - 應用程序的數據是應用程序的責任。

你可能會考慮審查以下內容:

披露:我作爲Berkeley DB產品的產品經理工作。 :)