【问题标题】:BerkeleyDb : safe removing files of environmentBerkeleyDb:安全删除环境文件
【发布时间】:2015-11-26 19:33:00
【问题描述】:

我在一个项目中使用 BerkeleyDb。 我有一些由几个文件组成的环境。有时,我需要删除其中一些文件

当我使用文件系统删除文件时,打开环境会引发错误没有这样的文件或目录

BerkeleyDb 环境中是否存在安全删除文件的方法

【问题讨论】:

    标签: berkeley-db


    【解决方案1】:

    要删除数据库,您需要绝对确定环境中不存在对该数据库的引用。最简单的方法如下:

    1. 使用db->remove() 从应用程序中删除数据库。
    2. 使用dbenv->txn_checkpoint() 刷新所有更改,检查日志,然后刷新日志。
    3. dbenv->txn_checkpoint()DB_FORCE 标志一起使用以推动另一个检查点,确保在恢复环境时不会尝试恢复上一个检查点之前的数据库。

    我知道,第 3 步听起来很疯狂。也许不再需要它了。但在不久的过去,它肯定是需要的。当然需要步骤 1 和 2。您需要进行试验,看看您的应用程序是否需要第 3 步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-13
      • 2020-03-03
      • 2013-07-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 2017-11-07
      • 2015-08-14
      相关资源
      最近更新 更多