【问题标题】:Berkeley Db platform migrationBerkeley Db 平台迁移
【发布时间】:2009-09-22 22:40:00
【问题描述】:

我有一个大型(数 Gb)berkeley 数据库,我正在考虑从 Windows (2K) 迁移到 Linux(Redhat 或 Ubuntu)。我不知道该怎么做。我可以只移动 db 文件,还是需要特殊的转换工具?

【问题讨论】:

    标签: berkeley-db


    【解决方案1】:

    数据库和日志文件可以跨不同的字节序系统移植。 Berkeley DB 将识别它所在的系统类型,并相应地为它管理的构成数据库本身的数据结构交换字节。 Berkeley DB 的区域文件是内存映射的,不可移植。这没什么大不了的,因为它们的区域文件持有缓存和锁,因为您的应用程序在转换期间不会运行,因此会在新系统上重新创建。

    但是,请注意,Berkeley DB 对数据中的字节顺序或类型一无所知(在您的键和值中,存储在“DBT”中)。您的应用程序代码负责了解它运行在什么样的系统上,它如何存储数据(大端或小端)以及如何转换它(或简单的访问重新排序)。另外,请密切注意您的 btree 比较功能。这也可能因您的系统架构而异。

    数据库和日志文件也可以跨操作系统移植,这与字节排序相同——应用程序的数据是应用程序的责任。

    您可以考虑查看以下内容:

    披露:我在 Oracle 工作,担任 Berkeley DB 产品的产品经理。 :)

    【讨论】:

      【解决方案2】:

      here 描述了一个跨平台文件传输实用程序。

      您可能还需要关注您机器上的字节顺序,但这一点已经讨论过here

      如果您使用的是 Java Berkeley,尽管这无关紧要?

      【讨论】:

      • 我正在使用 C++ 绑定。顺便说一句,我查看了您提供的链接。我不确定它是否迁移数据,相反,它似乎允许跨不同平台浏览文件 - 除非我弄错了?
      • 我认为这个实用程序可以透明地处理文件兼容性问题。我认为,如果您解决了让操作系统运行良好,然后让 Berkeley DB 在您的其他平台上运行良好的问题,那么您应该做好准备。无论如何,祝你好运;我的知识被你的问题挖掘出来了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多