【发布时间】:2011-12-18 13:24:26
【问题描述】:
我们的应用程序使用 berkeley db 进行临时存储和持久性。一个新问题出现了,大量数据来自各种输入源。现在底层文件系统不支持如此大的文件大小。无论如何要拆分 berkeley DB文件分成逻辑段或分区,而不会丢失其中的数据。我还需要使用 berkeley DB 属性进行设置,而不是为这个简单的任务进行繁琐的编程。
【问题讨论】:
标签: berkeley-db
我们的应用程序使用 berkeley db 进行临时存储和持久性。一个新问题出现了,大量数据来自各种输入源。现在底层文件系统不支持如此大的文件大小。无论如何要拆分 berkeley DB文件分成逻辑段或分区,而不会丢失其中的数据。我还需要使用 berkeley DB 属性进行设置,而不是为这个简单的任务进行繁琐的编程。
【问题讨论】:
标签: berkeley-db
据我所知,BDB 不支持您这样做。但是,您可以通过创建多个数据库自己实现它。
我之前使用 BDB 以编程方式进行过此操作。即我的代码将一个可能很大的索引文件划分为单独的文件,并在这些子文件上创建了一个顶级主索引。
【讨论】:
现代 BDB 可以使用 DB_CONFIG(推荐)或 API 调用添加其他目录。
看看这些指令(和相应的 API 调用)是否有帮助: add_data_dir set_create_dir 设置数据目录 set_lg_dir set_tmp_dir
请注意,添加这些指令不太可能透明地“正常工作”,但使用 db_dump/db_load 重新创建使用这些指令配置的数据库文件应该不会太难。
【讨论】: