可不可以将mongodb复制集从盘,单独拿出来做一个新的mongodb服务器。

新手上路,请多包涵

我尝试这样做,但是无法复制集初始化。

阅读 1.5k
1 个回答

可以,操作过程是这样:

  1. 拿出来的实例不要加--replSet参数启动;
  2. 删除local数据库:
    use local;
    db.dropDatabase();
  3. 加上--replSet重新启动;
  4. 重新初始化一个新的复制集;

原理很简单,复制出来的节点已经是一个复制集的一员,当然不允许你重新初始化。但这些信息存储于local库的一些集合中(有兴趣可以看看有哪些集合)。所以删除这些集合,系统就会认为这是一个没有初始化过的复制集。然后就可以开始初始化了。
实际上不用删除local库,去改里面的表中的内容也可以做到。但是可能这样会更复杂,有兴趣可以自己探索一下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进