標籤:http os strong 檔案 資料 div amp log
叢集的配置
(本測試放於同一台機器進行配置,所以IP地址一樣,如果是在不同的伺服器上更換IP便可以) 1、目錄結構 拷貝兩份mongodb到/home/scotte.ye/mongo1和/home/scotte.ye/mongo2 2、開啟mongodb 主:#cd /home/scotte.ye/mongo1/bin#./mongod --master -port=10111 -dbpath=/home/data/10111 -nohttpinterface &#這樣主伺服器就開啟了,幾個關鍵參數的說明(當然也可以自己查看協助,./mongod --help):--master:標識當前開啟的mongodb是作為主伺服器的-port:當前伺服器的監聽服務連接埠。預設27017-dbpath:批當前程式啟動並執行日誌儲存路徑。預設/data/db。注這個路徑mongodb不人自己建立,所以一定要自己手工來建立,否則程式不能正常啟動。-nohttpinterface:不開啟網頁介面,也就是不能通過網頁的形式查看伺服器運行狀態。預設是會在28017連接埠開啟一個網頁服務提供使用者查看伺服器狀態。因為當前都在同一個機器上,所以如果開啟這個兩個會產生衝突,所以不能開啟。 從:#cd /home/scotte.ye/mongo1/bin#./mongod --slave --source=192.168.35.106:10111 -port=10112 -dbpath=/home/data/10112 -nohttpinterface &#這是開啟一個從伺服器,多個從也是按相同的方式來開啟。幾個關鍵的參數說明:--slave:指明當前開啟的為從伺服器。--source:標明當前從伺服器要串連的主伺服器的連接埠和IP其它參數同主,所以不再贅述。
叢集特點 1、只有主伺服器允許寫入,其它從伺服器只能讀取。2、從伺服器啟動的時候馬上就會和主伺服器進行資料同步,所以不要擔心後起的從伺服器不會和主伺服器同步之前的資料,也不要我們自己手動操作。
叢集的主從切換 1、主機宕機,slave頂替
- 停止slave的mongod進程
- 刪除slave目錄下的local.*檔案
- 以--master的模式啟動B
2、切換Master/Slave(原來的master是正常啟動並執行)
- 用fsync命令暫停master的寫操作 //確保切換的時候主從資料同步
- 關閉slave服務
- 清空slave目錄下的local.*檔案
- 用--master重啟slave為master
- 在原來的slave也就是現在的master上面執行一次寫操作,產生oplog,擷取第一個同步點,因為slave與master的資料同步是通過oplog來實現的。所以這一步很重要,一定要完成。
- 關閉現master服務,同時slave也會產生新的local.*檔案
- 關閉原master,用現master上面的local.*檔案替換原master上面的local.*.因為檔案比較大,所以最好是壓縮拷貝
- 再用--master選項重啟新master服務
- 再用--slave的模式重啟原master服務,注意還要加一個-fastsync選項。這個和用fsync來暫停master有關
如果原來的master不是正常的,那麼這個時候可以跳過第一步,拷貝新master的檔案到原master重啟服務就可以了。 3、更新主伺服器位置 假設原來從主機的啟動方式如下: $ mongod --slave --source 192.168.35.106:10111 此時如果想更換主伺服器的地址,可以通過下面的方式:
- 重啟mongod服務,不要加-slave 和 -source選項:$ mongod
- 啟動shell執行如下操作:
-
- > use local
- switched to db local
- >db.sources.update({host:"192.168.356.106:10111"},{$set:{host:"192.168.35.106:10112"}})
- 接著再重啟伺服器:
- $ ./mongod --slave --source=192.168.35.106:10112
- $ # or
- $ ./mongod --slave