perl,BerkeleyDB和CDS模式

时间:2011-06-14 09:54:07

标签: database perl berkeley-db

在Debian系统上是否有使用perl的BerkeleyDB CDS模式的例子?我正在初始化:

$db_env = new BerkeleyDB::Env
-Home => "/tmp",
-Flags => DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL
or die "cannot open environment $BerkeleyDB::Error";

我收到DB_INIT_MPOOL的“无效参数”错误。如果我省略它,我会抱怨“环境不包含内存池”(对于Hash或Btree数据库)。

2 个答案:

答案 0 :(得分:1)

对此的简单回答是删除文件__db.XXX,其中XXX是三个数字。例如,在我的环境中,我有三个文件,__ db.001,__ db.002和__db.003。

我知道这是一个老帖子,之前的答案基本上是相同的,但是这个例子在我昨天谷歌搜索时偶然发现这个帖子时会帮助我。

答案 1 :(得分:0)

  

我得到了一个“无效的论点”   DB_INIT_MPOOL的错误。如果我省略它,   我抱怨“环境问题   没有包含内存池“(for   Hash或Btree数据库)。

如果您尝试创建一个环境,其中已存在不同配置(不同标志)的环境,则通常会出现第一种错误(“无效参数”)。

至于第二个错误(缺少内存池),这是因为您指示BDB在没有DB_INIT_CDB的情况下执行DB_INIT_MPOOL - 这是不可能的,CDB 必须带内存池。

看看this other BDB/CDB question,我已经留下了一些可能对您有用的文档的指示。