首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB -更改数据目录名更改数据

MongoDB -更改数据目录名更改数据
EN

Database Administration用户
提问于 2019-02-24 00:15:50
回答 2查看 3.1K关注 0票数 0

我正在目睹MongoDB的一种非常古怪的行为。

我在一个测试系统(Windows10,64位)上启动MongoD,如下所示:

代码语言:javascript
复制
"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" --dbpath "C:\MongoData"

然后关闭服务器,用生产服务器上的数据集替换MongoData目录。我再次启动了mongod,但是我得到了一个包含4个文档的集合,这是我在用一个真正的文档替换测试数据集之前所拥有的。

这是不对的,因为我希望在一个真实的数据集中看到大量的文档。然后,我尝试了几十种方法,包括将MongoD指向其原始位置的数据文件夹,这给了我来自真实集合的所有文档。数据是安全的。但是在我的测试系统里发生了什么?

我注意到,如果我将测试系统中的文件夹重命名为MongoData2并指向它,那么我就得到了正确的生产数据集。但是,如果我将其重命名为MongoData,并启动指向该文件夹的mongod,我将再次得到4个文档。

是什么引起的?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2019-02-27 18:15:01

看起来,本地COMODO防火墙以其HIPS功能部分阻止了应用程序。我使用了命令行参数来控制DB路径,所以我并不完全惊讶它可能会影响MongoD所看到的内容。

最新的症状是数据库“忘记”了新创建的用户。在允许应用程序通过防火墙后,一切都运行良好。

票数 0
EN

Database Administration用户

发布于 2019-02-25 05:07:14

按照使用备用dbpath的MongoDB文档这里,使用-dbpath选项在配置文件(例如C:\mongodb\mongod.cfg)或命令行中指定路径。

默认: /data/db在Linux和macOS上,\data\db在Windows上

蒙神实例存储其数据的目录。

在3.0版本中更改:-dbpath中的文件必须对应于-存储引擎中指定的存储引擎。如果数据文件与-存储引擎不对应,mongod将拒绝启动。

--directoryperdb

使用单独的目录存储每个数据库的数据。目录位于-dbpath目录下,每个子目录名称对应于数据库名称。

在Version3.0中更改:要更改现有部署的-总干事b选项,必须使用新的-总干事b值和新的数据目录(--dbpath )重新启动单神实例,然后重新填充数据。

  • 对于独立实例,可以对现有实例使用独头,停止实例,使用新的-总干事b值和新的数据目录重新启动,并使用蒙古恢复填充新的数据目录。
  • 对于副本集,可以通过停止辅助成员、使用新的-总干事b值和新的数据目录重新启动以及使用初始同步填充新的数据目录,以滚动方式进行更新。若要更新所有成员,请先从辅助成员开始。然后退出主服务器,并更新已退出的成员。
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/230577

复制
相关文章

相似问题

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