首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我从/ MongoDB /db中删除所有文件时,为什么会保存数据?

当我从/ MongoDB /db中删除所有文件时,为什么会保存数据?
EN

Stack Overflow用户
提问于 2010-12-23 18:25:54
回答 2查看 1.9K关注 0票数 1

我刚开始在Rails3上使用MonogDB,在做了一些基准测试后,我发现它的执行速度比Postgresql/pg快5-10倍。

我决定检查数据是如何存储的,所以我删除了/ data /db中的所有文件(该文件夹包含"mydb.0“、"mydb.1”等文件。

然而,我仍然可以从我的Rails应用程序访问数据!即使在重新加载服务器之后也是如此。

那么,是否有任何类型的临时或缓存文件夹,其中包含所有包含数据的.json文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-23 19:47:09

  1. 您不能在不停止MongoDB的情况下删除‘数据文件’。
  2. MongoDB使用caching,但在停止MongoDB时,缓存日期也会清空。
  3. 如果您停止了MongoDB并删除了数据文件夹,则数据不再是bson,而不是json。
票数 5
EN

Stack Overflow用户

发布于 2011-01-04 19:32:58

正确的答案是这是一个UNIX特性,而不是mongo。(我假设您使用的是Linux)

Mongo使用内存映射文件作为存储。其中,这意味着最有可能的是,mongo会让所有的文件一直处于打开状态。

在Unix上,这些文件在使用这些文件的最后一个进程关闭时立即删除,而不是在您发出"rm“命令时删除。

在这种情况下,rm命令取消链接文件(从目录中删除条目,因此无法再次访问)。

所以,答案是,一旦你停止mongo,这个文件就会被操作系统删除。

请注意,该文件仍在使用磁盘空间,即使"df“或"du”表示没有。这可能会让人感到困惑,因为您可能会出现"disk full“错误,并在"df”上报告大量可用空间。

您可以删除此文件,但是:

  • 你不会真的释放空间,但是所有的Unix命令都会认为是相反的。
  • Mongo不会受到影响(乍一看,并不真正了解它的内部结构),但是所有的数据在关闭时都会丢失。这有时是很有用的。(我曾经在设置演示服务器时看到过这个)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4517868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档