MongoDB數據庫的主從配對,附數據遷移示例

數據中心在運行中有可能遇到各種硬件、電力、網絡故障等問題,需要設計良好的系統來隔離,儘量減少對上層應用的影響,持續對外提供服務;一旦發生業務中斷,也應儘快恢復。通過主從備份設計,在主應用系統發生故障時,備機能夠及時接管應用,保持業務的連續性。


以如下這個基本的應用架構爲例,數據庫存在單點隱患,可以考慮利用MongoDB對主從的支持特性設計成Master-Slave部署,完成架構優化。(MongoDB的主從同步通過內網能達到最佳效率,如果只能通過公網進行主從同步,將會影響效率。)

wKiom1UaWY-jEcnhAAHjqqP1tAU345.jpg 

可以直接使用MongoDB鏡像實現:先開通Master的鏡像,再開通Slave的鏡像,然後在MongoDB Slave中運行以下腳本進行主從配對:


1. 腳本存放路徑:/root/mongo_slave.sh

2. 配置方式(運行以下命令):bash /root/mongo_slave.sh

  a) 進入交互方式,詢問是否繼續(這裏輸入yes):this server is master.Do you need change to slave?(yes/no) 

  b) 要求輸入遠程master ip地址,這裏需要填寫master的內網ip:Please enter your master ip? 

    i. 注意:填寫內網ip的時候,請確定主從鏡像的內網是否互通,及master的27017 mongodb服務端口是否打開,否則會導致主從失敗。否則會出現錯誤提示:“error : connect to <IP> 27017 (tcp) failed: Connection refused” 

    ii. 注意:這裏輸入公網ip也是可行,只不過主從通過內網同步才能達到最大效率,公網的傳輸速度會影響主從同步的效率。 

  c) 要求輸入master root密碼進行主從配置: 

The authenticity of host '121.199.54.209 (121.199.54.209)' can't be established. 

RSA key fingerprint is fe:17:21:c7:22:b7:10:90:91:85:76:ed:81:30:b8:7d. 

Are you sure you want to continue connecting (yes/no)? 

這裏輸入yes後,再輸入master鏡像的root密碼。 

3. 自動重啓: 輸入正確的master root密碼,配置完成後會自動重啓mongodb。當出現“slave create successed”的字樣,說明配置成功。

wKioL1UaWyqh9LV1AADiS_5nQ4U407.jpg 

4. 查看:less /alidata/log/mongodb/mongod.log 

可以看到日誌中主從已經開始同步 

2014-08-04T17:34:33.205+0800 [replslave] build index on: local.me properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.me" } 

2014-08-04T17:34:33.205+0800 [replslave] added index to empty collection

2014-08-04T17:34:33.205+0800 [replslave] build index on: local.sources properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.sources" } 

2014-08-04T17:34:33.206+0800 [replslave] added index to empty collection 

2014-08-04T17:34:33.208+0800 [replslave] repl: syncing from host:10.171.228.64:27017 


5. 主從配置後,從庫密碼:當成功運行/root/mongo_slave.sh腳本進行主從配置後,會重新初始化一次主庫的密碼,並且此時從庫的密碼跟主庫的密碼一致。即在從庫中/alidata/account.log中看到“And the main library the same password”的字樣。


查看MongoDB主從環境鏡像:>>主環境<< | >>從環境<<


————————


示例:將項目遷移至數據盤中 

假如我們需要考慮將項目從系統盤遷移至數據盤中,整個流程參考如下:

(鏡像部署的項目一般存在系統盤的/alidata/server/mongodb/data目錄中)

1、停止mongodb: 

  /etc/init.d/mongod stop 


2、mount /dev/xvdb1 /mnt/ #將第一塊數據盤掛載至mnt目錄下,也可以根據您自己的需要,掛載至其他數據盤中。 

  #mnt爲數據盤的掛載目錄,根據您的需求,數據盤也可以掛載其他目錄中。 

  mkdir -p /mnt/mongodb


3、cp -a /alidata/server/mongodb/data/* /mnt/mongodb/data/ 


4、vim /etc/mongod.conf編輯,將文件中以下內容: 

  dbpath=/alidata/server/mongodb/data 

  修改爲:

  dbpath= /mnt/mongodb/data/ 

  chown mongod.mongod /mnt/mongodb/data/ -R 


5、啓動mongodb 

  /etc/init.d/mongod start


————————


查看MongoDB主從環境鏡像:>>主環境<< | >>從環境<<

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章