mongodb副本集介紹、mongodb副本集搭建、mongodb副本集測試
阿新 • • 發佈:2018-11-19
早期 exe 編輯 ODB linu 51cto 運行 負責 自動切換 一:mongodb副本集介紹
編輯三臺機器的配置文件,更改或增加:
replication://把此行前面的#刪除
##oplog大小
oplogSizeMB: 20//前面有兩個空格
##復制集名稱
replSetName: aminglinux//前面有兩個空格
分別重啟三臺機器
連接主,在主上運行命令mongo
早期版本使用master-slave,一主一從和MySQL類似,但slave在此架構中為只讀,當主庫宕機後,從庫不能自動切換為主
目前已經淘汰master-slave模式,改為副本集,這種模式下有一個主(primary),和多個從(secondary),只讀。支持給它們設置權重,當主宕掉後,權重最高的從切換為主
在此架構中還可以建立一個仲裁(arbiter)的角色,它只負責裁決,而不存儲數據
再此架構中讀寫數據都是在主上,要想實現負載均衡的目的需要手動指定讀庫的目標server
二:mongodb副本集搭建
三臺機器: 192.168.133.130(primary) 192.168.133.132(secondary) 192.168.133.133(secondary)
replication://把此行前面的#刪除
##oplog大小
oplogSizeMB: 20//前面有兩個空格
##復制集名稱
replSetName: aminglinux//前面有兩個空格
分別重啟三臺機器
連接主,在主上運行命令mongo
use admin
config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}rs.initiate(config)
rs.status() //查看狀態
如果兩個從上的狀態為"stateStr" : "STARTUP", 則需要進行如下操作
var config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}
rs.reconfig(config)此時再次查看rs.status()會發現從的狀態變為SECONDARY
三:mongodb副本集測試
主上建庫,建集合
use mydb
db.acc.insert({AccountID:1,UserName:"123",password:"123456"})
show dbs
從上查看
show dbs
若出現錯誤Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" },需要執行
rs.slaveok()
mongodb副本集介紹、mongodb副本集搭建、mongodb副本集測試