当前位置: 萬仟网 > IT编程>数据库>MongoDB > 007.MongoDB特殊成员

007.MongoDB特殊成员

2019年06月11日 07:26  | 萬仟网IT编程  | 我要评论

一 mongodb成员

1.1 常见特殊member

secondary存在一些特殊的成员类型:
  1 priority 0		#不能升为主,可以用于多数据中心场景
  1 hidden			#对客户端来说是不可见的,一般用作备份或统计报告用
  1 delayed			#数据比副集晚,一般用作 rolling backup 或历史快照

二 添加备份节点

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})
  1 my_rep:primary> rs.conf()

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()
 

三 添加延迟节点

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})
  1 my_rep:primary> rs.conf()

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()
  1 my_rep:secondary> db.age01.find().pretty()			#等待60秒再次查看

四 其他特殊节点

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com