您的位置:首页 > 数据库 > Mongodb

007.MongoDB特殊成员

2019-06-10 11:27 1306 查看

一 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: