007.MongoDB特殊成員

一 MongoDB成員

1.1 常見特殊member

Secondary存在一些特殊的成員類型:
  1 Priority 0		#不能升爲主,能夠用於多數據中心場景
013
  1 Hidden			#對客戶端來講是不可見的,通常用做備份或統計報告用
014
  1 Delayed			#數據比副集晚,通常用做 rolling backup 或歷史快照
015

二 添加備份節點

2.1 前期準備

本實驗基於《006.MongoDB複製(副本集)》。
  1 [root@mongodb01 ~]# mongo --host 172.24.8.71 -u clusteradmin -p clusteradmin
  2 my_rep:PRIMARY> rs.remove("172.24.8.74:27017")
  3 my_rep:PRIMARY> rs.remove("172.24.8.73:27017")

執行以上操做,使副本集達到如下規劃:
主機名
IP
類型
備註
mongodb01
172.24.8.71
primary
主節點
mongodb02
172.24.8.72
secondary
備節點
arbiter
172.24.8.75
arbiter
衝裁節點
副本集特殊成員規劃:
主機名
IP
類型
備註
mongodb01
172.24.8.71
primary
主節點
mongodb02
172.24.8.72
secondary
備節點
arbiter
172.24.8.75
arbiter
衝裁節點
mongodb03
172.24.8.73
hidden
備份節點

2.3 添加備份節點

  1 my_rep:PRIMARY> rs.add({"host":"172.24.8.73:27017","priority":0,"hidden":true})
016
  1 my_rep:PRIMARY> rs.conf()
017

2.4 測試備份節點

  1 [root@mongodb01 ~]# mongo --host 172.24.8.71 -u admin -p admin
  2 my_rep:PRIMARY> use mydb
  3 my_rep:PRIMARY> show tables
  4 age01
  5 my_rep:PRIMARY> lisi_age=({name: 'lisi', age: '19', tel: '123456782', love: ['apple','orange']})
  6 my_rep:PRIMARY> db.age01.insert(lisi_age)
  7 [root@mongodb01 ~]# mongo --host 172.24.8.73 -u admin -p admin		#登陸備份節點
  8 my_rep:SECONDARY> rs.slaveOk()
  9 my_rep:SECONDARY> show tables
 10 age01
 11 my_rep:SECONDARY> db.age01.find().pretty()

018

三 添加延遲節點

3.1 前期準備

本實驗基於《006.MongoDB複製(副本集)》。

3.2 確認狀態

  1 [root@mongodb01 ~]# mongo --host 172.24.8.71 -u clusteradmin -p clusteradmin
  2 my_rep:PRIMARY> rs.remove("172.24.8.73:27017")

執行以上操做,使副本集達到如下規劃:
主機名
IP
類型
備註
mongodb01
172.24.8.71
primary
主節點
mongodb02
172.24.8.72
secondary
備節點
arbiter
172.24.8.75
arbiter
衝裁節點
副本集特殊成員規劃:
主機名
IP
類型
備註
mongodb01
172.24.8.71
primary
主節點
mongodb02
172.24.8.72
secondary
備節點
arbiter
172.24.8.75
arbiter
衝裁節點
mongodb03
172.24.8.73
hidden
備份節點
mongodb04
172.24.8.74
Delayed
延時節點

3.3 添加延時節點

  1 my_rep:PRIMARY> rs.add({"host":"172.24.8.74:27017","priority":0,"hidden":true,"slaveDelay":60})
019
  1 my_rep:PRIMARY> rs.conf()
020

3.4 測試備份節點

  1 [root@mongodb01 ~]# mongo --host 172.24.8.71 -u admin -p admin
  2 my_rep:PRIMARY> use mydb
  3 my_rep:PRIMARY> show tables
  4 age01
  5 my_rep:PRIMARY> db.age01.insertMany([{name: 'mazi', age: '15', tel: '123456784', love: ['pear','apple']},{name: 'xiaoming', age: '8', tel: '123456785', love: ['apple','grape']}])
  6 [root@mongodb01 ~]# mongo --host 172.24.8.74 -u admin -p admin		#登陸備份節點
  7 my_rep:SECONDARY> rs.slaveOk()
  8 my_rep:SECONDARY> show tables
  9 age01
 10 my_rep:SECONDARY> db.age01.find().pretty()
021
  1 my_rep:SECONDARY> db.age01.find().pretty()			#等待60秒再次查看
022

四 其餘特殊節點

4.1 更多成員類型

Secondary-Only:不能成爲primary節點,只能做爲secondary副本節點,防止一些性能不高的節點成爲主節點。
Non-Voting:沒有選舉權的secondary節點,純粹的備份數據節點。
 
成爲primary
對客戶端可見
參與投票
延遲同步
複製數據
Default
x
Secondary-Only
x
x
Hidden
x
x
x
Delayed
x
Arbiters
x
x
x
x
Non-Voting
x
x

參考文檔:https://www.cnblogs.com/zhoujinyi/p/3554010.html
相關文章
相關標籤/搜索