我正在目睹MongoDB的一种非常古怪的行为。
我在一个测试系统(Windows10,64位)上启动MongoD,如下所示:
"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" --dbpath "C:\MongoData"然后关闭服务器,用生产服务器上的数据集替换MongoData目录。我再次启动了mongod,但是我得到了一个包含4个文档的集合,这是我在用一个真正的文档替换测试数据集之前所拥有的。
这是不对的,因为我希望在一个真实的数据集中看到大量的文档。然后,我尝试了几十种方法,包括将MongoD指向其原始位置的数据文件夹,这给了我来自真实集合的所有文档。数据是安全的。但是在我的测试系统里发生了什么?
我注意到,如果我将测试系统中的文件夹重命名为MongoData2并指向它,那么我就得到了正确的生产数据集。但是,如果我将其重命名为MongoData,并启动指向该文件夹的mongod,我将再次得到4个文档。
是什么引起的?
发布于 2019-02-27 18:15:01
看起来,本地COMODO防火墙以其HIPS功能部分阻止了应用程序。我使用了命令行参数来控制DB路径,所以我并不完全惊讶它可能会影响MongoD所看到的内容。
最新的症状是数据库“忘记”了新创建的用户。在允许应用程序通过防火墙后,一切都运行良好。
发布于 2019-02-25 05:07:14
按照使用备用dbpath的MongoDB文档这里,使用-dbpath选项在配置文件(例如C:\mongodb\mongod.cfg)或命令行中指定路径。
默认: /data/db在Linux和macOS上,\data\db在Windows上
蒙神实例存储其数据的目录。
在3.0版本中更改:-dbpath中的文件必须对应于-存储引擎中指定的存储引擎。如果数据文件与-存储引擎不对应,mongod将拒绝启动。
使用单独的目录存储每个数据库的数据。目录位于-dbpath目录下,每个子目录名称对应于数据库名称。
在Version3.0中更改:要更改现有部署的-总干事b选项,必须使用新的-总干事b值和新的数据目录(--dbpath )重新启动单神实例,然后重新填充数据。
https://dba.stackexchange.com/questions/230577
复制相似问题