Berkeley DB 在没有交易的情况下损坏?
Posted
技术标签:
【中文标题】Berkeley DB 在没有交易的情况下损坏?【英文标题】:Berkeley DB corrupted without transactions? 【发布时间】:2014-06-12 12:09:44 【问题描述】:如果一个 Berkeley DB 被多个没有事务的并发进程打开写入(并且被写入),那么该 DB 是否可能损坏是真的吗?
【问题讨论】:
您可能想自己在这个问题中展示一些研究成果 - 您怀疑数据库损坏的基础是什么? 【参考方案1】:我们需要锁定。 (但事务并非绝对必要。)请参阅文档中的http://www.mathematik.uni-ulm.de/help/BerkeleyDB/ref/debug/common.html:
症状: 运行多个线程或进程,并且数据库似乎已损坏。
可能的原因: 未启用锁定。
修复: 确保您在访问方法中获得了锁定。您必须将 DB_INIT_LOCK 指定给 DB_ENV->open 调用,然后将该环境传递给 DB->open。
【讨论】:
以上是关于Berkeley DB 在没有交易的情况下损坏?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不记录/写入 __db.00x 文件的情况下使用 Berkeley Db 事务?