MongoDB Replica Set搭建集群

MongoDB做集群,版本3.2官网推荐的集群方式Replica Set

准备服务器3台

两个standard节点(这两个节点直接可以互切primary secondary)。

一个arbiter节点,它手中握着一张选票,决定上面两个standard节点中的哪一个可以成为primay。

机器名称和预承担的角色如下:

test39 primary

test41 secondary

test42 arbiter

介绍一下涉及到的参数

--dbpath   数据文件路径

--logpath  日志文件路径

--port        端口号,默认是27017.我这里使用的也是这个端口号.

--replSet   复制集的名字,一个replica sets中的每个节点的这个参数都要用一个复制集名字,这里是test.

--replSet test/  这个后面跟的是其他standard节点的ip和端口

--maxConns   最大连接数

--fork       后台运行

--logappend   日志文件循环使用,如果日志文件已满,那么新日志覆盖最久日志。

操作流程:

1. 三台服务上分别启动mongo实例

bin/mongod --port 27017 --dbpath /home/baoshan/cluster/mongodb/data/mongodb --replSet baoshan

2. 添加replica sets配置,随意登录一台mongo实例

>use admin;

>cfg={_id:"baoshan", members:[ {_id:0,host:‘test39:27017‘,priority:2}, {_id:1,host:‘test41:27017‘,priority:1},{_id:2,host:‘test42:27017‘,arbiterOnly:true}] };

>rs.initiate(cfg);

3. 验证是否成功

rs.status()通过这个命令,可以查看各个节点的ip、角色已经是否正常

rs.stepDown()这个命令可以强制primary和standard节点角色互换,从而验证是否能够实现failover功能。

或者primary上执行 use admin;db.shutdownServer();断掉primary看效果。

rs.isMaster()显示当前谁是primary

MongoDB replica sets中通过设置priority的值来决定优先权的大小,这个值的范围是0--100,值越大,优先权越高。

遇到的问题及解决办法:

baoshan:SECONDARY> show dbs;

2017-04-28T21:43:46.801+0800 E QUERY    [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } :

[email protected]/mongo/shell/utils.js:25:13

[email protected]/mongo/shell/mongo.js:62:1

[email protected]/mongo/shell/utils.js:760:19

[email protected]/mongo/shell/utils.js:650:15

@(shellhelp2):1:1

baoshan:SECONDARY> rs.slaveOk()

baoshan:SECONDARY> show dbs;

admin     0.000GB

local     0.567GB

metadata  0.001GB

service   2.547GB

test      0.094GB

重要参考官方文档:https://docs.mongodb.com/manual/

参考文档:

Mongodb集群搭建的三种方式:http://blog.csdn.net/luonanqin/article/details/8497860

replica sets副本集部署详细过程: http://blog.csdn.net/mchdba/article/details/51638131

replica sets配置与搭建:http://blog.chinaunix.net/uid-23284114-id-2977686.html

时间: 2024-12-26 19:41:48

MongoDB Replica Set搭建集群的相关文章

架构(三)MongoDB安装配置以及集群搭建

一 安装 1.1 下载MongoDB 我个人不太喜欢用wget url, 之前出现过wget下载的包有问题的情况 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.7.tgz 1.2 上传服务器并解压 tar -zxvf mongodb-linux-x86_64-3.4.7.tgz 1.3 移动到/data/program/software/mongodb mv mongodb-linux-x86_64-3.4.7/ /data/

mongoDB主从和副本集群配置

mongoDB主从和副本集群配置 Mongodb是时下流行的NoSql数据库(MongoDB是一个基于分布式文件存储的数据库),它的存储方式是文档式存储,并不是Key-Value形式.   优势: 快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右.) 很高的可扩展性–轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了) 他有一个很好的 replication 模式 (replica sets) 有很完善的Java API 他的存储格

MongoDB分片存储的集群架构实现

MongoDB分片存储的集群架构实现 如果需要存储大量数据,或者系统的读写吞吐量很大的时候,单个server就很难满足需求了.这个时候我们可以使用MongoDB的分片机制来解决这些问题. 分片的基本概念 分片(sharding)是一种水平扩展(horizontal scaling)的方式,把一个大的数据集分散到多个片服务器上,所有的片服务器将组成一个逻辑上的数据库来存储这个大的数据集.分片对用户(应用层)是透明的,用户不会知道数据很被存放到哪个片服务器上. 这种方式有两个好处: 分片之后,每个片

mongodb replica set搭建

1/安装mongodb 配置repo: [mongodb-org-3.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc 然后yum install mongodb-org -y 配置/etc

MongoDB Sharding Cluster分片集群

MongoDB Sharding Cluster 第1章 分片技术简述: sharding是MongoDB用来将大型集合分割高不同服务器上所采用的方法,尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事 和mysql分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同的服务器之间的均衡 1.1 分片的目的: ?  垂直扩展:增加更多的cpu和存储资源来扩展容量,也属于硬件扩展 ?  水平扩展:将数据集分布

Redis 实战篇之搭建集群

Redis 集群简介 Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点. Redis 集群是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接. 在一个有 N 个节点的集群中,每个节点都有 N-1 个流出的 TCP 连接,和

使用LVS+DR搭建集群实现负载均衡

使用LVS+DR搭建集群实现负载均衡 DR模式的概述与工作原理 DR模式服务概述:        Direct Routing(直接路由) --在同一个地域,同一个网段 Director分配请求到不同的real server.real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接.负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性.Direct Routing由与采用物理层(修改MAC地址)技术,因此所有服务器都必须在一

复制虚拟机vmware centos搭建集群节点过程中网络配置eth0和eth1遇到的问题以及NAT模式下虚拟机静态IP配置方法

在centos中安装完第一个虚拟机后,一般习惯通过克隆的方式创建其它虚拟机,开后vmware无法发现网卡信息,系统认为这是重新安装,所以重新创建了一个新的网卡叫eth1. 并且用IFCONFIG-a查看网卡信息,只有lo信息,无法显示eth0了. 解决方法: 修改/etc/udev/rules.d 下的 70-persistent-net.rules文件,我们会发现下面两行: # PCI device 0x1022:0x2000(pcnet32) SUBSYSTEM=="net",DR

redis 一二事 - 搭建集群缓存服务器

在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群 (个人喜欢redis,对memcache不感冒) redis是3.0后增加的集群功能,非常强大 集群中应该至少有三个节点,每个节点有一备份节点.这样算下来至少需要6台服务器 考虑到有些朋友的电脑配置不是很高,跑多个虚拟机就会卡,这边放出伪分布式和分布式 (2年前的配置) 前提先装好一个单例情况下的redis(这里就不多说了) 需要6个redis实例 搭建集群的步骤: 在/usr/local下 创建文件夹 这个