Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >部署MongoDB副本集

部署MongoDB副本集

作者头像
陳斯托洛夫斯記
发布于 2022-10-04 06:22:02
发布于 2022-10-04 06:22:02
1.5K00
代码可运行
举报
文章被收录于专栏:XBDXBD
运行总次数:0
代码可运行

一主两备

默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。

环境配置

IP

端口

角色

主机名

192.168.1.163

27017

主节点

mongo01

192.168.1.126

27017

备节点

mongo02

192.168.1.41

27017

备节点

mongo03

安装mongodb

在三个节点上安装mongodb

修改配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true		#启动或重启后是否追加写入
  path: /var/log/mongodb/mongod.log
#  traceAllExceptions: true	#打印异常详细信息

# Where and how to store data.
storage:
  dbPath: /data/mongodb
  journal:
    enabled: true
  directoryPerDB: false|true	#当为true时,mongodb使用单独的目录存储每个数据库,每个目录名称对应于数据库名称
#  engine:
#  mmapv1:
#  wiredTiger:
#    engineConfig:
#      cacheSizeGB: 1
#      directoryForIndexes: true
#    collectionConfig:
#      blockCompressor: zlib
#    indexConfig:
#      prefixCompression: true

# how the process runs
processManagement:
  fork: true 		#允许程序在后台运行
  pidFilePath: /var/run/mongodb/mongod.pid

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0
  maxIncomingConnections: 65535		#最大连接数
  wireObjectCheck: true 		#mongod实例在收到客户端时验证所有请求,以防止客户端将格式错误或无效的bson插入到mongod数据库
  ipv6: false|true	#启用或禁用ipv6支持,默认禁用
  unixDomainSocket:
    enabled: true 	#启用或禁用unix套接字上的侦听
    pathPrefix: /tmp	#unix套接字的路径,默认/tmp目录下


#security:

#operationProfiling:

replication:
#  oplogSizeMB: 2048
  replSetName: xbd		#副本集名称,按需修改
 
#sharding:
#  clusterRole: shardsvr	#把此实例作为分片
#  clusterRole: configsvr	#把此实例作为配置服务器

## Enterprise-Only Options

#auditLog:

#snmp:

初始化副本集(登录任意一个节点)

mongo 192.168.1.163:27017

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> config = {_id:"xbd",members:[
... {_id:0,host:"192.168.1.163:27017"},
... {_id:1,host:"192.168.1.126:27017"},
... {_id:2,host:"192.168.1.41:27017"}]
... }

> rs.initiate(config);	# 如果结果返回1,说明初始化成功

常用命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rs.status()	#查看副本集,所有节点都可以操作

db.isMaster()	#查看当前节点是否为主节点

rs.remove("192.168.1.41:27017")	#移除一个节点,需要在主节点操作

rs.add("192.168.1.41:27017")	#添加一个节点,需要在主节点操作
	
rs.addArb("192.168.10.108:27017")   #添加一个仲裁节点

模拟宕机测试

副本集更新权重模拟宕机

默认三台的权重都为1,如果任何一个权重比其他的高,则该台机器切换为primary角色 在primary节点上执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cfg = rs.conf()
cfg.members[0].priority = 3
cfg.members[1].priority = 2
cfg.members[2].priority = 1
rs.reconfig(cfg)
登录备节点查询数据

备节点是不能直接查询数据的,执行此命令把自己提升为从节点才可以查询数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rs.slaveOk()

一主一备一仲裁

仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。

初始化副本集(登录任意一个节点)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cfg = {_id:"xbd",members:[
{_id:0,host:"192.168.1.126:27017",priority:2},
{_id:1,host:"192.168.1.163:27017",priority:1},	{_id:2,host:"192.168.1.41:27017",arbiterOnly:true}]
}

rs.initiate(cfg)

仲裁节点有一个特别的配置--arbiterOnly:true,这个不能少,否则主备不生效

mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
repset:SECONDARY> db.getMongo().setSlaveOk();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MongoDB 副本集配置详解
MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。 复制还允许您从硬件故障和服务中断中恢复数据。
星哥玩云
2022/08/17
5450
mongoDB(二)mongoDB副本集实战
mongoDB副本集实战 背景 mongoDB单台服务器的特点: - 数据有丢失风险 - 单台服务器无法做高可用 mongoDB副本集的特点: - 高可用架构,预防数据丢失 - 多台副本数据保持同步和一致 - mongodb副本集在有问题的时候自动切换 实战准备 副本集环境配置 生产环境至少三台服务器 机器IP 主机名 mongo端口 配置文件路径 角色 192.168.56.11 centos7-node1 27017 /data/mongodb/27017/mongodb.conf 192.16
alexhuiwang
2020/09/24
7260
mongodb副本集添加节点
mongodb副本集架构运行一段时间后如果业务发展需要新增新的成员,或者迁移集群,则可以参考本文处理
俊才
2021/12/17
2.6K0
MongoDB3.6集群搭建(分片+副本集) 原
分片则指为处理大量数据,将数据分开存储,不同服务器保存不同的数据,它们的数据总和即为整个数据集。追求的是高性能。 在生产环境中,通常是这两种技术结合使用,分片+副本集
拓荒者
2019/09/16
1.2K0
mongodb-4.0.4搭建集群
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
拓荒者
2019/09/18
8440
mongodb-4.0.4搭建集群
Mongodb集群搭建的三种方式
 Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mongodb.org/manual/        今天主要来说说Mongodb的三种集群方式的搭建:Replica Set / Sharding / Master-Slaver。这里只说明最简单的集群搭建方式(生产环境),如果有多个节点可以此类推或者查看官方文档。OS是Ubuntu_x64系统,客户端用的是Jav
庞小明
2018/03/07
3.4K0
Mongodb集群搭建的三种方式
MongoDB教程(六):mongoDB复制副本集
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
用户11147438
2024/07/20
1080
MongoDB 副本集搭建与管理详解
单节点的 MongoDB 在数据的安全和冗余方面是比较低的,在生产环境中,我们为 MongoDB 配置副本集,这样可以提高数据的高可用性和安全性。
星哥玩云
2022/08/18
1.6K0
MongoDB 副本集搭建与管理详解
Mongo部署副本集
部署副本集 1.0 更改Mongo配置文件 [root@localhost mongo]# vim conf/mongo.conf port=27017 fork=true logpath=/usr/local/mongo/logs/mongodb.log logappend=true dbpath=/usr/local/mongo/data replSet=rs0 # 加入副本集名称,此名称要一致 启动Mongo [root@localhost mongo]# mongod -f conf/mongo.
Yuou
2022/09/26
3140
Mongodb 副本集安装配置
一、基础了解 早期版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主。 目前已经淘汰master-slave模式,改为副本集,这种模式下有一个主(primary),和多个从(secondary),只读。支持给它们设置权重,当主宕掉后,权重最高的从切换为主。 在此架构中还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据。 再此架构中读写数据都是在主上,要想实现负载均衡的目的需要手动指定读库的目标server。 来看一
老七Linux
2018/05/31
6450
Monogo副本集
MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。类似于MySQL的MMM架构
mikelLam
2022/10/31
8530
Monogo副本集
MongoDB副本集
如果你们现在服务器显示当前的服务器的状态是:SECONDARY。表示该服务器是从服务器,我们需要查看哪台服务器为主服务器,也就是"stateStr" : "PRIMARY"。我们需要在主服务器才进行进行操作,当然,也有强行在从服务器进行操作的办法。这里先不说。
魔王卷子
2019/06/01
1.6K0
009.MongoDB分片群集部署
shard:每个分片是分片数据的子集。从MongoDB 3.6开始,必须将分片部署为副本集。
木二
2019/07/01
1.6K0
MongoDB副本集设置节点优先级priority
MongoDB副本集中,如果要指定某些节点不能被选为primary节点,或者primary节点必须在某些节点中选出,该怎么配置呢?没错可以通过priority修改这些节点的优先级实现。
Power
2025/03/02
710
浅尝辄止MongoDB:复制
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/83113823
用户1148526
2019/05/25
5900
mongodb副本集搭建
副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能够实现数据的异地备份,读写分离和自动故障转移。
端碗吹水
2020/09/23
1.1K0
mongodb副本集搭建
MongoDB高级应用之高可用方案实战(4)
Mongodb有三种集群方式的搭建:Master-Slaver/Replica Set / Sharding。下面是最简答的集群搭建,不过准确说也不能算是集群,只能说是主备。并且官方已经不推荐这种方式,所以在这里只是简单的介绍下吧,搭建方式也相对简单。主机配置 /opt/mongodb/master-slave/master/mongodb.cfg
Tom弹架构
2022/01/06
5490
生产mongodb 分片与集群 方案
mkdir /data/log/mongodb/{master,slave,arbiter}  -p
明哥的运维笔记
2019/01/30
8420
Mongodb只读副本集如何切换到读写模式
Mongodb副本集具备自动故障转移的高可用特性,通常所说副本集是1主2从的架构,当主节点出现故障时,剩下2个节点会自动进行选出新主节点,提供对外服务.也可以进行主动维护,将主节点降级为从节点,将从节点提升为主节点.本次要介绍是当副本集中只有1个节点活着,其他节点全部异常,此时仅存的节点自动变成secondary,只能提供只读业务,无法提供写入业务.只有secondary变成primary才可以写入,此时应该如何做?
徐靖
2020/08/13
2.2K0
MongoDB分片集群搭建 原
©著作权归作者所有:来自51CTO博客作者三和梁朝伟的原创作品,如需转载,请注明出处,否则将追究法律责任
拓荒者
2019/09/16
1.2K0
相关推荐
MongoDB 副本集配置详解
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验