2011-06-14 21 views
1

有沒有在Debian系統上使用perl在Debian系統上爲BerkeleyDB使用CDS模式的例子?我正在初始化: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數據庫)。

+0

對我來說工作很好,也許[升級libdb](http://sleepycat.com/)加頭到4.8或5.1? – daxim 2011-06-14 11:00:53

回答

0

我得到一個DB_INIT_MPOOL的「無效參數」 錯誤。如果我忽略它, 我收到有關「環境 未包含內存池」(對於 Hash或Btree數據庫)的投訴。

你通常得到這個第一種錯誤的(「無效參數」)如果你試圖在那裏與不同的配置(不同的標誌)的環境中已經存在創造環境。

至於第二個錯誤(缺少內存池),那是因爲你指示BDB做DB_INIT_CDBDB_INIT_MPOOL - 這是不可能的,CDB 已去一個內存池。

看看this other BDB/CDB question,我留下了一些指向那些可能會讓你感興趣的文檔。

1

簡單的回答是刪除文件__db.XXX,其中XXX是三個數字。例如在我的環境中,我有三個文件,__db.001,__db.002和__db.003。

我知道這是一箇舊帖子,以前的答案基本上是一樣的,但是當我昨天在Google上搜索時偶然發現了這個帖子,這個例子會幫助我。