Режимы Perl, BerkeleyDB и CDS
Есть ли пример использования режима CDS для BerkeleyDB с perl в системе Debian? Я инициализирую с помощью:
$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 ответа
И я получаю ошибку "неверный аргумент" для DB_INIT_MPOOL. Если я его опускаю, я получаю жалобы на то, что "среда не включает пул памяти" (для баз данных Hash или Btree).
Обычно вы получаете этот первый тип ошибки ("Неверный аргумент"), если вы пытаетесь создать среду, в которой среда с другой конфигурацией (другими флагами) уже существует.
Что касается второй ошибки (отсутствует пул памяти), то это потому, что вы указываете BDB сделать DB_INIT_CDB
без DB_INIT_MPOOL
- это невозможно, CDB должен идти с пулом памяти.
Взгляните на этот другой вопрос BDB/CDB, я оставил некоторые ссылки на документацию, которая может оказаться интересной для вас.
Простой ответ на это - удалить файлы __db.XXX, где XXX - это три числа. Например, в моей среде у меня было три файла: __db.001, __db.002 и __db.003.
Я знаю, что это старый пост, и предыдущий ответ по сути то же самое, но пример помог бы мне, когда я наткнулся на этот пост, когда гуглил вчера.