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. 整个过程对业务透明,同时也大大降低 ...
随机推荐
- webpack 打包less文件配置
1 npm install less less-loader -D 2匹配规则
- MySQL主从复制配置(Docker容器内配置)
主从工作原理: 配置介绍: MASTER:172.17.0.2 SLAVE:172.17.0.3 MASTER内数据库: 仅仅同步以上两个库(在configerdata库中创建了wu2表) SLAVE ...
- NLP标记集资料
title: 标记集 tags: grammar_cjkRuby: true --- LTP分词标注集 标记 含义 举例 B 词首 __中__国 I 词中 哈__工__大 E 词尾 科__学__ S ...
- SoapUI 之 webService 接口测试 [5]
一.webservice接口实例说明 学习的话,大家可以自行到网上找 一些免费的webservice接口来练手.本文中选择实例为:中国电视节目预告(电视节目表) WEB 服务. Endpoint : ...
- SpringBoot系列-整合Mybatis(XML配置方式)
目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...
- Ligg.EasyWinApp-101-Ligg.EasyWinForm: Application--启动,传入参数、读取Application级别配置文件、验证密码、软件封面、启动登录、StartForm
首先请在VS里打开下面的文件,我们将对源码分段进行说明: 步骤1:读取debug.ini文件 首先读取当前文件夹(.\Clients\Form)的debug.ini文件,该文件的args用于调试时传参 ...
- 由“RangeError: Invalid status code: 0”错误所引发的思考
最近发现一个基于Node.js平台上的Express框架运行的Web网站经常报这样一个错误: RangeError: Invalid status code: 网站的源码中有专门针对错误处理的中间件, ...
- 探索Dynamics 365 用户能够登录使用的最小权限需求
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 页面中加入地图map
1.首先要有密钥AK ,可以自己注册获取或复制别人的 .搜索百度地图API (http://lbsyun.baidu.com/apiconsole/key) 2.地图示例 <head> & ...
- docker下MySQL的主从复制
MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name mas ...