BerkeleyDb:安全删除环境文件

时间:2015-09-01 14:03:47

标签: berkeley-db

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

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

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

1 个答案:

答案 0 :(得分:0)

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

  1. 使用db->remove()从应用程序中删除数据库。
  2. 使用dbenv->txn_checkpoint()刷新所有更改,检查日志,然后刷新日志。
  3. 使用带有dbenv->txn_checkpoint()标志的DB_FORCE再推送一个检查点,确保在恢复环境时不会尝试恢复最后一个检查点之前的数据库。
  4. 我知道,第3步听起来很疯狂。也许它不再需要了。但在不久的将来,它肯定是需要的。当然需要步骤1和2。您需要进行试验,看看您的应用是否需要第3步。