MongoDB 主從備份mongodb
環境: centos 7 ,mongodb x86_64數據庫
mongodb 官網下載頁:https://www.mongodb.com/download-center#communitycentos
下載完畢,解壓到指定的目錄,我如今就把它放到/opt目錄下(是綠色版的,不用安裝)服務器
在bin/這個目錄下,都是mongodb的相關工具,工具
經常使用 工具說明:spa
bsondump --將Bson格式的文件轉儲爲Json 格式的數據3d
mongo --mongo客戶端(用於鏈接mongodb)日誌
mongod --mongodb數據加主服務器(用於啓動mongo)server
mongodump --mongodb數據庫備份工具blog
mongoimport --用於導入數據文件到mongodb
mongostore --恢復
只是簡單列出幾個。。。
mongodb是要指定數據庫文件與日誌文件的位置的,因此我在/home目錄上建立三個data目錄結構都同樣的文件夾
注:mongodb 搭建主從備份 至少的服務器數據爲3臺,不然沒法實現主從備份。 在此我就只使用同一臺主機,指定不一樣的端口與實現
三臺 mongodb 服務器的主從備份 ,在如今生產中只要把IP改成真實的IP就OK
命令:
mongod --bind_ip server_ip --port 端口 --dbpath 數據文件保存路徑 --logpath 日誌文件/mongodb.log --replSet 服務器集羣名稱
三臺mongo數據庫服務器啓動成功,
注:第一臺啓動的端口在:1000,數據文件保存 在/home/data1/db
第二臺端口在:2000 數據文件保存 在/home/data2/db
第三臺端口在3000 數據文件保存 在/home/data3/db
重點:最後那個參數 : --replSet [名字] 這個參數後面的名字 是要同樣的,不然沒法通信
服務器搭建成功,接下來就初始化配置:
使用 mongo --host ip --port 鏈接上服務對應的服務器
鏈接上三臺mongoDB服務器並任意選一臺初始化:
注:此時若是不進入初始化並配置是什麼也作不了的如圖:
提示 slaveOK= false
初始化命令:
rs.initiate()
初化成功,查看服務器狀態:
查看服務器當前狀態:
rs.status()
能夠看到 "stateStr" : "PRIMARY" 看到此選項說明此服務器已經是主服務器,接下來要只要在此服務器中添加從服務器的IP與端口
在主服務器中添加副本集:
rs.add('從服務器IP:端口')
成功添加兩臺從服務器:
注:上面只要沒報錯就成功添加,也能夠看到 左下角那個光標:Mserver:PRIMARY> 說明它是主服務器
至此:在主服務器中的配置結束 ,切換到從服務器中執行:rs.slaveOk() 這個命令就完成了
在主服務器初始化併成功添加從器後
在從服務器中執行:
rs.slaveOK()
最終結果:
注:只有主服務器才能寫入數據,從服務器只能讀,當主服務器 巖機 時,從服務器中隨機有一臺自動切換成主服務器,而巖機的那臺
服務器修好後開機會自動切換爲從服務器,並從主服務器中備份缺失的數據。