【问题标题】:MongoDB Windows repaired db not startingMongoDB Windows 修复 db 未启动
【发布时间】:2020-01-07 21:31:03
【问题描述】:

我尝试将 MongoDB 实例 (4.0.9) 升级到版本 4.2.0。 停止服务后,替换bin文件夹中的文件,服务拒绝启动,说明

 Data directory D:\data\db\ not found., terminating

我在 mongod.cfg 中确实设置了不同的目录,但升级后,mongo 会忽略它。我试着跑了

 mongod --repair

它修复了索引和数据库,但是由于同样的错误它不会启动,所以我做了

mongodb --repair --dbpath d:\Server\MONGO\data

再次修复数据库,但如果我启动服务,我会再次遇到同样的错误

Data directory D:\data\db\ not found., terminating

所以我备份了我的数据文件夹,删除了 mongo,重新安装它并启动。如果我覆盖数据文件夹,即使修复后也无法启动。

我正在努力不丢失我的数据。从全新安装开始,我应该覆盖哪些文件才能进行修复并保留我的旧数据?

【问题讨论】:

  • 您是否尝试重新安装服务:net stop MongoDBmongod.exe --removemongod.exe --config "path_to_config" --installnet start MongoDB

标签: mongodb


【解决方案1】:

因此,经过数小时的搜索和错误测试,我找到了问题所在。 出于某种原因,我有一个工作的 4.0.9 构建使用从未升级的数据集,我还不明白为什么它甚至在升级到 4.2.0 之前就可以工作......

所以数据集格式似乎不是 WiredTired,而是来自 2.x 版本的 mmapv1。通过

修复它
  • 复制数据集以使其在d:\Data\db 中可用
  • 通过降级到 2.x 版本来强制使用 mmapv1 数据格式mongod --dbpath [myPath] --storageEngine=mmapv1
  • 依次升级到 3.4.x、3.6.x 和 4.0,重用我的旧数据集并在每个版本中修复和升级...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 2021-02-22
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 2015-03-15
    • 2015-05-30
    • 1970-01-01
    相关资源
    最近更新 更多