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. 整个过程对业务透明,同时也大大降低 ...
随机推荐
- Python活力练习Day4
Day4:将列表的值按相反顺序依次输出 eg : input : list = [1,2,3,4,5] output : [5,4,3,2,1] 方法一:时间复杂度O(n),其中 n ...
- C# 32位程序 申请大内存
后期生成事件命令行代码: cd /d $(DevEnvDir)cd..cd..cd VC\bineditbin /largeaddressaware $(TargetPath)
- IP地址的格式和分类
IP地址 IP地址时IP协议提供的一种地址格式,它为互联网上的网络设备分配一个用来通信的逻辑地址,目前分为IP v4和IP v6两种,v4的意思是version4,v6是同样的意思. IP v4 IP ...
- GitLab-怎样使用GitLab托管项目
场景 Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...
- 从0系统学Android--3.2四种基本布局
从0系统学Android--3.2四种基本布局 本系列文章目录:更多精品文章分类 本系列持续更新中.... 3.3 系统控件不够用?创建自定义控件 上一节我们学习了 Android 中的一些常用的控件 ...
- MySQL数据库~~~~~创建用户和授权、备份和还原
一 MySQL创建用户和授权 1.1 对新用户增删改 1.创建用户: # 指定ip:192.118.1.1的chao用户登录 create user 'chao'@'192.118.1.1' iden ...
- Self Service Password 密码策略
1.在活动目录中新建一个用户,并赋予域管理员权限:2.拷贝conf目录下的config.inc.php为config.inc.local.php:3.按自己的实际情况及要求修改config.inc.l ...
- Python元组是什么
引出 在使用Python过程中,列表.集合和字典是比较常用的数据结构. 列表简单说就是数组,不对,它就是数组 集合就是去重的元素结构,和JAVA中的set一样 字典就是一个key-value的键值对, ...
- JavaScript-----13.内置对象 Math()和Date()
1. 内置对象 js对象分为3种:自定义对象(var obj={}).内置对象.浏览器对象. 前两种对象是js基础内容,属于ECMAScript,第三个浏览器对象是js独有的.讲js API的时候会讲 ...
- js中获取当前url路径
可以使用 window.location 获取当前页面url.以下是一些简单应用. <script> $(function(){ // 返回 web 主机的域名,如:http://127. ...