轉載自 http://www.cnblogs.com/spnt/
既然使用Mongodb,就不得不用他的安全備份機制:複本集。
Mongodb複本集是什麼東西?
通俗的講就是用多台機器進行同一資料的非同步同步,從而使多台機器擁有同一資料的多個副本,並且當主庫當掉時在不需要使用者幹預的情況下自動切換其他備份伺服器做主庫。而且還可以利用複本伺服器做唯讀伺服器,實現讀寫分離,提高負載。
需要指數的是:Mongodb的主從複製模式官方已經不在推薦使用了。
那麼該如何?呢?
我用一台的機器的不同檔案夾來做下類比(生產環境下最好用不同的伺服器來做物理隔絕)。
我的檔案目錄是:
F:\mongodb1\
F:\mongodb2\
F:\mongodb3\
那現在開始操作。
以上就是啟動命令。
參數:port: Mongodb的監聽連接埠
dbpath:資料檔案儲存路徑
logpath:系統日誌存放路徑
replSet :複本集名稱,我用的是test,其他的節點必須使用這個名字做複本集名稱。
logappend:日誌的寫入模式是追加,不是預設的覆蓋模式。
同樣對目錄mongodb2,mongodb3使用以上命令,連接埠號碼分別是:2222,3333,如下:
各個Mongodb啟動以後,就只剩下一步了,把他們串在一起。(此處新開啟一個cmd來操作,所有的命令都在這裡執行,不要把這個關閉了)
首先通過執行:mongo --port 1111串連到Mongodb1的執行個體上
然後定義配置資訊:config_test,
最後通過rs.initiate(config_test)啟動複本集
至此整個複本集的配置已經完成。完成情況可通過rs.status()命令查看
這裡面的幾個參數說明下:
health:1 //1表明狀態是正常,0表明異常
state:1 // 1表明是primary,2表明是slave,即做備份的機器
從結果看現在是一台主庫,兩台備份。
當一台伺服器當掉會怎麼樣呢?
我們把mongodb1停掉,然後再運行rs.status(),如下
可以看到Mongodb已經當掉,這時候Mongodb3成為了主庫。
配置完成後就免不了要做維護,關於維護請看我下篇文章