在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数据库)。
答案 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,我已经留下了一些可能对您有用的文档的指示。