我有一个很大的(几个Gb)berkeley数据库,我正在考虑从Windows(2K)迁移到Linux(Redhat或Ubuntu)。我不知道该如何解决这个问题。我可以仅仅移动db文件,还是需要特殊的转换实用程序?
答案 0 :(得分:3)
数据库和日志文件可在不同的endian系统中移植。 Berkeley DB将识别它所使用的系统类型,并相应地交换它所管理的构成数据库本身的数据结构的字节。 Berkeley DB的区域文件是内存映射的,不可移植。这不是什么大问题,因为他们的区域文件包含缓存和锁定,因为在转换期间您的应用程序将不会运行,将在新系统上重新创建。
但是,请注意,Berkeley DB对数据中的字节顺序或类型(在键和值中存储在“DBT”中)一无所知。您的应用程序代码负责了解它运行的系统类型,数据存储方式(大端或小端)以及如何转换(或简单的重新命令)。另外,请密切关注您的btree比较功能。根据您的系统架构,这也可能有所不同。
数据库和日志文件也可以跨操作系统移植,但与字节顺序一样需要注意 - 应用程序的数据是应用程序的责任。
您可以考虑查看以下内容:
披露:我作为Berkeley DB产品的产品经理为Oracle工作。 :)
答案 1 :(得分:1)