perl、BerkeleyDB 和 CDS 模式

发布于 2024-11-15 11:23:55 字数 325 浏览 3 评论 0原文

是否有在 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 的“无效参数”错误。如果我省略它,我会收到关于“环境不包括内存池”(对于哈希或 Btree 数据库)的抱怨。

Is there an example of using CDS mode for BerkeleyDB with perl on a Debian system? I am initializing with:

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

And I am getting an "invalid argument" error for DB_INIT_MPOOL. If I omit it, I get complaints about "environment did not include a memory pool" (for either Hash or Btree databases).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灼痛 2024-11-22 11:23:55

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

我知道这是一篇旧帖子,之前的答案本质上是同一件事,但是当我昨天在谷歌搜索时偶然发现这篇文章时,这个例子会对我有所帮助。

Simple answer to this is to remove the files __db.XXX, where XXX is three numbers. For example in my environment I had three files, __db.001, __db.002 and __db.003.

I know this is an old post and the previous answer essentially is the same thing but the example would have helped me when I stumbled over this post while googling yesterday.

柏拉图鍀咏恒 2024-11-22 11:23:55

我收到了“无效参数”
DB_INIT_MPOOL 错误。如果我省略它,
我收到关于“环境
不包括内存池”(对于
哈希或 Btree 数据库)。

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

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

看看这个其他 BDB/CDB 问题,我在那里留下了一些您可能感兴趣的文档的指针。

And I am getting an "invalid argument"
error for DB_INIT_MPOOL. If I omit it,
I get complaints about "environment
did not include a memory pool" (for
either Hash or Btree databases).

You're typically getting this first kind of error ("Invalid argument") if you try to create an environment where an environment with a different configuration (different flags) already exists.

As for the second error (missing memory pool), it's because you're instructing BDB to do DB_INIT_CDB without DB_INIT_MPOOL - that's not possible, CDB has to go with a memory pool.

Take a look at this other BDB/CDB question, I've left some pointers to documentation there that might prove interesting to you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文