您好,登錄后才能下訂單哦!
復制集(Replica Sets),是一個基于主/從復制機制的復制功能,進行同一數據的異步同步,從而使多臺機器擁有同一數據的都多個副本,由于有自動故障轉移和恢復特性,當主庫宕機時不需要用戶干預的情況下自動切換到其他備份服務器上做主庫,一個集群最多可以支持7個服務器,并且任意節點都可以是主節點。所有的寫操作都被分發到主節點,而讀操作可以在任何節點上進行,實現讀寫分離,提高負載。
資源有限測試一個VM開3個實例:
環境:centos7.0
192.168.1.21:20011 P
192.168.1.21:20012 S
192.168.1.21:20013 A
mongodb verson:3.2
搭建過程:
1、下載包、并解壓
2、添加相關的目錄文件
[root@localhost mongodb27017]# ll
總用量 8
drwxr-xr-x. 2 root root 4096 12月 17 00:59 bin
drwxr-xr-x. 2 root root 30 12月 17 10:47 conf
drwxr-xr-x 4 root root 4096 12月 17 11:19 data
drwxr-xr-x. 2 root root 20 12月 17 01:13 key
drwxr-xr-x. 2 root root 23 12月 17 10:20 logs
#3個實例配置一樣
3、解壓包下bin目錄下的所有文件到cp到當前的創建的bin目錄下
4、3個實例的配置文件一致
[root@localhost conf]# cat mongodb27017.conf
port=20011#每個實例端口,根據實際來配置
dbpath=/export/mongodb27017/data #數據目錄
logpath=/export/mongodb27017/logs/mongod.log #日志目錄
fork=true
logappend=true
#keyFile=/export/mongodb27017/key/mongodb#后面介紹
nohttpinterface=true
replSet=mongodb ##復制集的名字,
5、啟動3個實例:
/export/mongodb27018/bin/mongod -f /export/mongodb27018/conf/mongodb27018.conf
/export/mongodb27019/bin/mongod -f /export/mongodb27019/conf/mongodb27019.conf
/export/mongodb27017/bin/mongod -f /export/mongodb27017/conf/mongodb27017.conf
#需要把解壓包bin目錄下文件分別拷貝到這3個啟動目錄下,或者一個作為basedir也可以,其他分開
6、配置復制集
/export/mongodb27017/bin/mongo --port 20011#根據自己實際的定義,進入數據庫
1、配置成員的關系:
config = {_id:"mongodb", members:[{_id:0,host:"192.168.1.21:20011", priority : 3}]} (給了優先級為3,mongodb為復制集的名)
2、初始化:
>rs.initiate(config);
3、添加備節點、仲裁節點
rs.add("192.168.1.21:20012") 添加備節點
rs.addArb("192.168.1.21:20013") 添加仲裁節點
rs.status()#查看狀態
rs.conf()#查看副本集成員及其優先級(看好成員的順序,優先級從1-100,越大的優先級越高)
config=rs.conf() 進行優先級設置
config.members[0].priority = 3 設置主節點優先級為3
config.members[1].priority = 2 設置備節點優先級為2
config.members[2].priority = 1 設置仲裁節點優先級為1
rs.remove("ip:port") 移除已經存在的成員
rs.reconfig(config) 保存配置,生效
7、設置備節點為slave
mongodb:SECONDARY> show dbs
2016-12-17T12:26:22.621+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } :
登陸到20012實例上執行:rs.slaveOk()
8、測試主節點宕機是否能夠切換
總結:
mongoDB的主從模式其實就是一個單副本的應用,沒有很好的擴展性和容錯性。而副本集具有多個副本保證了容錯性,就算一個副本掛掉了還有很多副本存在,并且解決了上面第一個問題“主節點掛掉了,整個集群內會自動切換”,如果節點掛了,它會重新選舉新的主節點。對于普通的業務能夠滿足,但高并發的話,復制集是無法滿足,就需要shard的,實現集群高可用,可以借助LVS或者其他。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。