2009-09-22 112 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产品的产品经理工作。 :)