Berkeley DB环境问题

Berkeley DB Environment issues

本文关键字:问题 环境 DB Berkeley      更新时间:2023-10-16

所以我们使用Berkeley DB,我们的API使用BDB c++ API。我们最近在数据库中添加了一些新的索引。添加新索引后,我们需要迁移所有旧数据,以便在旧记录上添加新索引,从那时起,每当我们启动向数据库写入的进程时,我们都会收到这些警告:

BDB2058警告:在加入环境时忽略DB_SET_LOCK_TIMEOUT。BDB2059警告:在加入环境时忽略DB_SET_TXN_TIMEOUT .

如果我理解正确的话,我们现在冒了死锁的风险,因为它"忽略"了我们设置的超时。当尝试随机写入数据库时,我还看到进程挂起。唯一的解决办法就是现在就重新开始。我的问题是,是否有人知道什么会导致这些警告,或者我该如何调试Environment实例化来找出原因?如有任何帮助或建议,不胜感激。

超时可能是dbenv环境的持久全局属性,而不是dbenv的每个使用实例的属性。

您可以尝试在数据库上运行db_recover来删除__db. conf。NNN文件。

否则,您可能有多个进程共享一个dbenv,并且警告指示后面的进程正在尝试更改已经设置的属性。