Linux 停止副本集MongoDB

Linux 停止副本集MongoDB,linux,mongodb,Linux,Mongodb,在MongoDB Shell中启动副本集的命令是rs.initiate() 这个命令的反面是什么。如何停止复制集 有重新配置集合或删除成员的命令,但我不知道如何删除最后一个成员,从而销毁副本集合。这取决于您的目标。如果要将现有的mongod重新用作独立服务器,而不是副本集成员,则执行以下步骤: 重新启动mongod进程,但不使用--replSet参数 删除本地数据库: use local; db.dropDatabase(); 转到辅助服务器上的mongo shell 使用以下命令停止辅助

在MongoDB Shell中启动副本集的命令是rs.initiate()

这个命令的反面是什么。如何停止复制集


有重新配置集合或删除成员的命令,但我不知道如何删除最后一个成员,从而销毁副本集合。

这取决于您的目标。如果要将现有的
mongod
重新用作独立服务器,而不是副本集成员,则执行以下步骤:

  • 重新启动mongod进程,但不使用
    --replSet
    参数
  • 删除本地数据库:

    use local;
    db.dropDatabase();
    
  • 转到辅助服务器上的mongo shell

  • 使用以下命令停止辅助服务器:

    • >使用admin
    • >db.shutdownServer()
  • 转到辅助服务器上的Linux shell,然后键入以下命令:
    • sudo服务mongod站
    有关更多信息,请查看以下链接:


    我只是在生产中遇到了这个问题@马格纳普(3月15日)的评论救了我一命

    使用mongodb 3.2.10,无需转储oplog,只需在第一个成员上执行此操作:

    use local
    db.system.replset.remove({}) 
    
    然后重新启动成员。它现在仍然有oplog和数据。只需运行:

    rs.initiate()
    rs.reconfig(conf)
    

    其中conf是新的conf。然后在其他每个成员上,只需运行上面的replset数据垃圾处理并重新启动它们。当他们开始的时候,他们会加入剧组

    最常见的方法是停止
    mongod
    ,因为您必须在不使用复制选项的情况下重新启动
    mongod
    ,才能真正阻止它尝试使用复制集。当我启动mongo后,它会给我以下警告:“警告:mongod启动时没有--replSet,但本地.system.replSet中有1个文档”. 如何清理此问题?相关问题:请参阅此处以获取完整答案:“errmsg”:“复制处于活动状态时无法删除“local”数据库”在删除local.MongoDB 2.6错误日志声明只需清空local.system.replSet,而不必删除整个本地数据库之前,必须在没有--replSet标志的情况下重新启动服务器。所以,
    使用local
    ,然后
    db.system.replset.remove({})
    。如果删除local,则不依赖于特定版本的实现内部。所有复制信息将始终存储在本地数据库中。