MongoDB 主从部署

发布于 2023-02-07 13:08:17 字数 2789 浏览 106 评论 0

主从部署架构示意图

Master-Slaver(主从)

官方声明:主从模式不推荐使用,在生产环境中,通常是分片+副本集结合使用。

  1. 主从选举过程耗时。
  2. 主从虽然实现了全量数据备份,但面对大数据 MapReduce 处理时,性能受限于单个机器的瓶颈。
  3. 分片+副本集无主节点和从节点之分,在故障发生时无需切换,各个分片节点互为备份。
  4. 分片+副本集在系统部署和维护上的复杂度要高于主从模式。

主从环境搭建

配置信息

节点1配置 node-13151.conf

dbpath=/home/mongo/master-slave/node-13151/data
logpath=/home/mongo/master-slave/node-13151/log/node.log
port=13151
fork=true
replSet=replicationCluster # 在分片上,不同分片的副本集命名不能一样

节点2配置 node-13152.conf

dbpath=/home/mongo/master-slave/node-13152/data
logpath=/home/mongo/master-slave/node-13152/log/node.log
port=13152
fork=true
replSet=replicationCluster # 在分片上,不同分片的副本集命名不能一样

节点3配置 node-13153.conf

dbpath=/home/mongo/master-slave/node-13153/data
logpath=/home/mongo/master-slave/node-13153/log/node.log
port=13153
fork=true
replSet=replicationCluster # 在分片上,不同分片的副本集命名不能一样

启动

分别启动三个节点并进入其中一个节点

mongod -f /home/mongo/master-slave/node-13151.conf
mongod -f /home/mongo/master-slave/node-13152.conf
mongod -f /home/mongo/master-slave/node-13153.conf

主从复制配置管理

查看复制集群的帮助文档

rs.help()
rs.status()

添加配置

var cfg ={"_id":"replicationCluster","members":[
{"_id":0,"host":"127.0.0.1:13151"},
{"_id":0,"host":"127.0.0.1:13152"},
{"_id":0,"host":"127.0.0.1:13153"}
]} rs.initiate(cfg) rs.status()

默认从节点不能读数据。需在从节点上执行

rs.slaveOk()

变更节点示例

插入新的复制节点

rs.add("127.0.0.1:13154")

删除slave 节点

rs.remove("127.0.0.1:27019")

查看节点状态

rs.status()

主从复制部署完毕,进入主节点即可插入数据;进入从节点即可查看数据,从节点无法插入数据。

主从复制

  • 主从之间使用 oplog 进行数据复制同步,同步过程自动发生
  • 配置 arbiterOnly 不会复制数据,仅作为选举裁判,不能把就有的节点变成 arbiterOnly。

复制集选举原理

  • 节点使用属性值 property 大小来决定选举谁做为主节点。
  • 配置 property 越大越可能成为 master。
  • 集群当中如果主节点挂掉后,会自动在从节点中选举一个重新做为主节点。
  • 设置 arbiterOnly 为 true 表示 做为裁判节点用于执行选举操作,该配置下的节点 永远不会被选举为主节点和从节点。

重新配置节点

var cfg ={"_id":"replicationCluster","members":[
{"_id":0,"host":"127.0.0.1:13151","priority":10},
{"_id":0,"host":"127.0.0.1:13152","priority":5},
{"_id":0,"host":"127.0.0.1:13153","arbiterOnly":true}
]} rs.reconfig(cfg) rs.status()

节点说明

  • PRIMARY 节点: 可以查询和新增数据
  • SECONDARY 节点:只能查询 不能新增 基于priority 权重可以被选为主节点
  • ARBITER 节点: 不能查询数据 和新增数据 ,不能变成主节点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

岁月无声

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文