007.MongoDB特殊成员
一 MongoDB成员
1.1 常见特殊member
1 Priority 0 #不能升为主,可以用于多数据中心场景

1 Hidden #对客户端来说是不可见的,一般用作备份或统计报告用

1 Delayed #数据比副集晚,一般用作 rolling backup 或历史快照

二 添加备份节点
2.1 前期准备
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 前期准备
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 更多成员类型
|
成为primary
|
对客户端可见
|
参与投票
|
延迟同步
|
复制数据
|
|
|
Default
|
√
|
√
|
√
|
x
|
√
|
|
Secondary-Only
|
x
|
√
|
√
|
x
|
√
|
|
Hidden
|
x
|
x
|
√
|
x
|
√
|
|
Delayed
|
x
|
√
|
√
|
√
|
√
|
|
Arbiters
|
x
|
x
|
√
|
x
|
x
|
|
Non-Voting
|
√
|
√
|
x
|
x
|
√
|
007.MongoDB特殊成员的更多相关文章
- 问题:调用 ASP.Net Core WebAPI的HTTP POST方法时,从 [FromBody] 中读取的 MongoDB GeoJsonObjectModel成员总是null
问题描述: POST/PUT to ASP.Net Core with [FromBody] to a MongoDB GeoJsonObjectModel member is always null ...
- (2)MongoDB副本集自动故障转移原理
前文我们搭建MongoDB三成员副本集,了解集群基本特性,今天我们围绕下图聊一聊背后的细节. 默认搭建的replica set均在主节点读写,辅助节点冗余部署,形成高可用和备份, 具备自动故障转移的能 ...
- (2)MongoDB副本集自动故障转移全流程原理
前文我们搭建MongoDB三成员副本集,了解集群基本特性,今天我们围绕下图聊一聊背后的细节. 默认搭建的replica set均在主节点读写,辅助节点冗余部署,形成高可用和备份, 具备自动故障转移的能 ...
- MongoDB 复制集 (一) 成员介绍
一 MongoDB 复制集简介 MongoDB的复制机制主要分为两种: Master-Slave (主从复制) 这个已经不建议使用 ...
- MongoDB复制集成员及状态转换
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 复制集(Replica Set)是MongoDB核心组件,相比早期版本采用的主从(Master-Slave) ...
- MongoDB复制集成员及架构介绍(一)
MongoDB复制集介绍 MongoDB支持在多个机器中通过异步复制达到提供了冗余,增加了数据的可用性.MongoDB有两种类型的复制,第一种是同于MySQL的主从复制模式(MongoDB已不再推荐此 ...
- C++笔记007:易犯错误模型——类中为什么需要成员函数
先看源码,在VS2010环境下无法编译通过,在VS2013环境下可以编译通过,并且可以运行,只是运行结果并不是我们期待的结果. 最初通过MyCircle类定义对象c1时,为对象分配内存空间,r没有初始 ...
- mongodb - Replication Set成员维护
1.添加复制集成员 ybb:PRIMARY> rs.add("cc.example.com:27020") { "ok" : 1 } ybb:PRIMAR ...
- MongoDB副本集的搭建
副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...
随机推荐
- CentOS7中_带sqlite3_CGO的golang程序_交叉编译到arm中
CentOS7中_带sqlite3_CGO的golang程序_交叉编译到arm中 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-10-28. 编写了个golang程序,用到了这个C ...
- Cortex-M7,A8,A9,A15与ADI的BlackFin以及SHARC的DSP性能PK
说明:1.通过此贴让我们对M4和M7的DSP性能有个全面的认识.2.测试数据来源于DSP Concepts,对于这家公司的名字,大家可能比较陌生.我们现在用的CMSIS-DSP软件就是由ARM委托这家 ...
- Jmeter性能测试分布式技术
一.什么是分布式测试 分布式测试是指通过局域网和Internet,把分布于不同地点.独立完成特定功能的测试计算机连接起来,以达到测试资源共享.分散操作.集中管理.协同工作.负载均衡.测试过程监控等目的 ...
- Java之封装与访问权限控制(一)
目录 Java之封装与访问权限控制(一) 封装的概念 访问控制符 属性私有化 Java之封装与访问权限控制(一) 对于封装的概念,我总觉得自己还是挺了解的,但是真要我说,还真说不出个啥来.我只能默默地 ...
- 每天3分钟操作系统修炼秘籍(6):Idle进程
点我查看秘籍连载 CPU的归属:Idle进程 操作系统并不总是繁忙.例如个人PC上任务比较轻,多数时候都无法充分利用CPU,导致CPU处于空闲状态.但CPU既然通电了,它就得运行,那么在它没有任务需要 ...
- LeetCode刷题191127
数据库: 1179 部门表 Department: +---------------+---------+| Column Name | Type |+---------------+-------- ...
- 程序员:May the Force be with you!
程序员如何理解:May the Force be with you! 我们并没有向其他人那样讨论现象级产品的生成原因,因为我们并不清楚这个原因是什么. 我们也不知道足记是否会重复过去一些现象级产品忽生 ...
- mysql研究跟进
count(1)对比 count(*) count(N),N指的是列的序列号,innodb引擎下一般为主键列:count(*),mysql优化器也会将统计列自动优化.所以日常使用区别不大 阿里规范里的 ...
- 数组中重复的数字(剑指offer_3)
在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次.请找出数组中任意一个重复的数字. Input: {2,3,1,0 ...
- Idea中新建yml不显示叶子形状的原因
IntelliJ IDEA 2019.2.4 x64 (版本),不显示叶子形状,导致写配置无法自动提示(自动提示请安装插件)Spring Assistant 先看一下Editor--->File ...