资讯专栏INFORMATION COLUMN

MongoDB 3.0 Replica Set 搭建

cuieney / 1468人阅读

摘要:节点介绍主节点在复制集中,主节点是唯一能够接收写请求的节点。在主节点进行写操作,并将这些操作记录到主节点的中。但是,旦当前的主节点不可用时,投票节点就会参与到新的主节点选举的投票中。仲裁节点使用最小的资源并且不要求硬件设备。

复制介绍

复制是在多台服务器之间同步数据的过程。复制集在大多数场合下已经代替Master-Slave复制。如果可能的话,尽可能使用复制集而不是主-从复制架构。

节点介绍 主节点(Primary)

在复制集中,主节点是唯一能够接收写请求的节点。MongoDB在主节点进行写操作,并将这些操作记录到主节点的oplog中。而从节点将会从oplog复制到其本机,并将这些操作应用到自己的数据集上。(复制集最多只能拥有一个主节点)

从节点(Secondaries)

从节点通过应用主节点传来的数据变动操作来保持其数据集与主节点一致。从节点也可以通过增加额外参数配置来对应特殊需求。例如,从节点可以是non-voting或是priority 0.

仲裁节点(ARBITER)

仲裁节点即投票节点,其本身并不包含数据集,且也无法晋升为主节点。但是,旦当前的主节点不可用时,投票节点就会参与到新的主节点选举的投票中。仲裁节点使用最小的资源并且不要求硬件设备。投票节点的存在使得复制集可以以偶数个节点存在,而无需为复制集再新增节点 不要将投票节点运行在复制集的主节点或从节点机器上。 投票节点与其他 复制集节点的交流仅有:选举过程中的投票,心跳检测和配置数据。这些交互都是不加密的。

Tip 1 : 一个复制集至少需要这个成员:一个主节点,一个从节点和一个投票节点。但是在大多数情况下,我们会保持3个拥有数据集的节点:一个主节点和两个从节点。即

Tip 2 : mongo3.0.0 版本更改:一个复制集最多可添加到50个节点,但是只能有7个投票节点(包括主节点)。在此之前,复制集最多可添加12个节点。

节点规则 配置副本集

准备三台机器,并且必须保持三台服务器能够相互连接,配置为一主一从一仲裁的模式

192.168.1.7:27017

192.168.1.8:27017

192.168.1.9:27017

配置文件说明
# 日志记录
logpath=/tmp/mongodb/log/mongod.log
logappend=true
# fork and run in background
fork = true
port = 27017
dbpath=/tmp/mongodb/data
# location of pidfile
pidfilepath = /tmp/mongodb/log/mongod.pid
rest = true
maxConns=32000

# Disables write-ahead journaling
# nojournal = true

# Replication Options
replSet=RsM
服务启动

分别启动三台mongo服务

/tmp/mongodb/bin/mongod -f /tmp/mongodb/conf/mongo.conf
初始化配置

进入其中一台mongo,进行配置(注:帐户权限,认证忽略)
增加一个变量

cfg = {"_id": "RsM", "members":[
    {"_id": 0,"host":"192.168.1.7:27017","priority":1},
    {"_id": 1,"host":"192.168.1.8:27017","priority":1},
    {"_id": 2,"host":"192.168.1.9:27017","priority":1},
]};
rs.initate(cfg);

 # 查看状态
rs.status()
测试故障自助转移

杀掉主节点,进入从节点后,利用rs.status();查看状态即可!

补充说明 新增节点与去除节点
rs.add("ip:port"); // 新增从节点
rs.addArb("ip:port"); // 新增仲裁节点
rs.remove("ip:port"); // 删除一个节点
rs.isMaster(); // 查看当前是否是主节点

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18845.html

相关文章

  • docker搭建mongo副本集

    摘要:设置构建副本集初始化配置查看副本集状态输出查看同步延迟备份关闭 设置network docker network create my-mongo-cluster docker network ls 构建副本集 docker run -p 30001:27017 --name mongo1 --net my-mongo-cluster daocloud.io/library/mo...

    betacat 评论0 收藏0
  • MongoDB复制集成员及状态转换

    摘要:大体分为成员的角色及转换成员状态及转换两部分。每个复制集成员在启动后,都先进入状态,然后加载成员的复制集配置,之后进入到状态。选举行为除了受和两个属性影响外,成员的状态也会影响选举,仅有和五种状态的成员允许进行投票操作。 此文已由作者温正湖授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 复制集(Replica Set)是MongoDB核心组件,相比早期版本采用...

    darryrzhong 评论0 收藏0
  • 使用mlaunch和m快速搭建MongoDB测试集群

    摘要:本文中我们就来聊一聊如何使用和两个工具快速搭建一个测试集群。注意的目的旨在为我们快速搭建测试环境,绝对不应该用于生产环境的使用上。准备工作安装是用于的一系列工具,就是其中用于快速启动的一部分。以下这些参数是我们经常使用的启动一个复制集。 前言 不知道大家在使用MongoDB的时候有没有遇到突然想要一个集群但是手边又没有的时候?特别是我已经升级到4.0了,突然想要一个3.2的集群怎么办?...

    wangzy2019 评论0 收藏0
  • TensorFlow 指南:GPU 的使用

    摘要:大家好,今天我们来给讲讲关于在中的使用规则。在某些情况下,最理想的是进程只分配可用内存的一个子集,或者仅根据进程需要增加内存使用量。 大家好,今天我们来给讲讲关于 TensorFlow 在 GPU 中的使用规则。支持的设备在一套标准系统中通常有多台计算设备。TensorFlow 支持 CPU 和 GPU 这两种设备。它们均用 strings 表示。例如:/cpu:0:机器的 CPU/devi...

    Leo_chen 评论0 收藏0
  • Simple Automated Backups for MongoDB Replica Sets

    There are a bunch of different methods you can use to back up your MongoDB data, but if you want to avoid downtime and/or potential performance degradation, the most common advice seems to be that you...

    iamyoung001 评论0 收藏0

发表评论

0条评论

cuieney

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<