鍍金池/ 問答/數(shù)據(jù)庫/ 可不可以將mongodb復制集從盤,單獨拿出來做一個新的mongodb服務(wù)器。

可不可以將mongodb復制集從盤,單獨拿出來做一個新的mongodb服務(wù)器。

我嘗試這樣做,但是無法復制集初始化。

回答
編輯回答
苦妄

可以,操作過程是這樣:

  1. 拿出來的實例不要加--replSet參數(shù)啟動;
  2. 刪除local數(shù)據(jù)庫:
    use local;
    db.dropDatabase();
  3. 加上--replSet重新啟動;
  4. 重新初始化一個新的復制集;

原理很簡單,復制出來的節(jié)點已經(jīng)是一個復制集的一員,當然不允許你重新初始化。但這些信息存儲于local庫的一些集合中(有興趣可以看看有哪些集合)。所以刪除這些集合,系統(tǒng)就會認為這是一個沒有初始化過的復制集。然后就可以開始初始化了。
實際上不用刪除local庫,去改里面的表中的內(nèi)容也可以做到。但是可能這樣會更復雜,有興趣可以自己探索一下。

2018年2月19日 20:10