MongoDB集群复制部署

简介:

本文总结了MongoDB 3.2版本的集群复制集部署步骤。

要求:

•该集群中包含2个分片(shard)

•每个分片都是1个副本集

•分片副本集、配置服务器都需要考虑到单机故障的情况,保证可用性

•为了减小实验数据占据磁盘空间、加快实验速度,将每个分片的mongodb服务oplogSize设置在100以下

•部署前,做好部署准备工作,记录部署架构

部署前准备工作:

根据要求,绘制出集群部署架构图,如下图所示:

两台Linux服务器,服务器版本为CentOS-6.6,为实现高可用配置两个复制集,每个复制集有三个片,配置三个配置服务器,保证其高可用性。

开启的各端口如下:

开始配置工作:

第一步:创建目录

第二步:在1.mongodb.com上配置三个配置服务器

mongod --configsvr --port 20000 --logpath /var/lib/mongo/data/configa/configa.log --logappend --dbpath /var/lib/mongo/data/configa --fork

mongod --configsvr --port 20001 --logpath /var/lib/mongo/data/configb/configb.log --logappend --dbpath /var/lib/mongo/data/configb --fork

mongod --configsvr --port 20002 --logpath /var/lib/mongo/data/configc/configc.log --logappend --dbpath /var/lib/mongo/data/configc --fork

第三步:在1.mongodb.com 和 2.mongodb.com上配置副3个本实例

在1.mongodb.com上配置副本实例

mongod --shardsvr --replSet a --dbpath /var/lib/mongo/data/a1/ --logpath /var/lib/mongo/data/a1/a1.log --port 27017 --fork --logappend --smallfiles --oplogSize 50

mongod --shardsvr --replSet a --dbpath /var/lib/mongo/data/a2/ --logpath /var/lib/mongo/data/a2/a2.log --port 27018 --fork --logappend --smallfiles --oplogSize 50

mongod --shardsvr --replSet a --dbpath /var/lib/mongo/data/a3/ --logpath /var/lib/mongo/data/a3/a3.log --port 27019 --fork --logappend --smallfiles --oplogSize 50

在2.mongodb.com上配置副本实例

mongod --shardsvr --replSet b --dbpath /var/lib/mongo/data/b1/ --logpath /var/lib/mongo/data/b1/b1.log --port 27017 --fork --logappend --smallfiles --oplogSize 50

mongod --shardsvr --replSet b --dbpath /var/lib/mongo/data/b2/ --logpath /var/lib/mongo/data/b2/b2.log --port 27018 --fork --logappend --smallfiles --oplogSize 50

mongod --shardsvr --replSet b --dbpath /var/lib/mongo/data/b3/ --logpath /var/lib/mongo/data/b3/b3.log --port 27019 --fork --logappend --smallfiles --oplogSize 50

第四步:在 1.mongodb.com配置route, mongos实例

mongos --configdb 1.mongodb.com:20000,1.mongodb.com:20001,1.mongodb.com:20002 --fork --logappend --logpath /var/lib/mongo/data/mongos1.log

mongos --configdb 1.mongodb.com:20000,1.mongodb.com:20001,1.mongodb.com:20002 --fork --logappend --logpath /var/lib/mongo/data/mongos2.log --port 30000

检查以上所有配置

第五步:配置副本集

Mongo --port 27017
Use admin
Rs.conf()

config={
  _id:“a",
  members:
    [
      {_id:0,host:‘1.mongodb.com:27017‘,priority:10},
      {_id:1,host:‘1.mongodb.com:27018‘,priority:1},
      {_id:2,host:‘1.mongodb.com:27019‘,priority:1},
    ]
}

config={
  _id:“b",
  members:
    [
      {_id:0,host:‘2.mongodb.com:27017‘,priority:10},
      {_id:1,host:‘2.mongodb.com:27018‘,priority:1},
      {_id:2,host:‘2.mongodb.com:27019‘,priority:1},
    ]
}


第六步:分片配置

Sh.addShard(“a/1.mongodb.com:27017”)
Sh.addShard(“b/1.mongodb.com:27017”)

时间: 2024-10-11 04:44:33

MongoDB集群复制部署的相关文章

手把手教你用Docker部署一个MongoDB集群

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.本文介绍了如何使用Docker搭建MongoDB集群. 本文我会向大家介绍如何使用Docker部署一个MongoDB集群,具体如下: 2.6.5版本的MongoDB 有3个节点的副本集(Replica set) 身份验证 持久化数据到本地文件系统 首先要准备三个运行的Docker服务器,这意味着你

MongoDB集群部署(副本集模式)

一.需求背景1.现状描述(1).针对近期出现的mongodb未授权的安全问题,导致mongodb数据会被非法访问.应安全平台部的要求,需要对所有mongodb进行鉴权设置,目前活动侧总共有4台,用于某XX产品: (2).某XX产品用到4台mongodb,属于2015年机房裁撤的范围: (3).早期的4台mongodb采用是的M1机型,同时在架构上采取了路由分片的模式.从目前来看,无论是数据量上,还是访问量上,都比较小,在资源上有点浪费,在架构上属于过早设计. 而本次新建的mongodb集群,采用

Mongodb集群部署以及集群维护命令

Mongodb集群部署以及集群维护命令 http://lipeng200819861126-126-com.iteye.com/blog/1919271 mongodb分布式集群架构及监控配置 http://freeze.blog.51cto.com/1846439/884925/ 见文中: 七.监控配置:      早在去年已经出现MongoDB和Redis的Cacti模板,使用它,你可以对你的MongoDB和Redis服务进行流量监控.cacti的模板一直在更新,若企业已经用到nosql这种

在CentOS6.6上以replSet方式部署MongoDB集群

部署方式在3台centos6.6系统上以Replica Set方式部署mongodb3.0.2集群. 官方参考资料: http://docs.mongodb.org/manual/tutorial/deploy-replica-set/ http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ 集群的IP地址分配# node01: 192.168.35.173(PRIMARY node)# node02: 192.16

在Docker中安装和部署MongoDB集群

在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.docker.com/u/tutum/mongodb/ 以该镜像启动一个容器(注意此时mongodb是standalone模式): docker run -d --name=mongodb -p 27017:27017 -p 28017:28017 tutum/mongodb:3.0 docker logs mongodb 输出信息: =============================

利用Docker部署mongodb集群--分片与副本集

环境 Docker version 1.6.2  mongodb 3.0.4 第一步  编写Dockerfile并生成镜像 主意包含两个Dockerfile镜像,一个mongod的,一个mongos(在集群中负责路由) 编写Mongod的Dockerfile: FROM ubuntu:14.04 RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 ENV MONGO_MAJOR 3.0 RUN ech

搭建高可用mongodb集群(二)—— 副本集

http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高

搭建高可用mongodb集群—— 分片

从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来解决这个问题. 传统数据库怎么做海量数据读写?其实一句话概括:分而治之.上图看看就清楚了,如下 taobao岳旭强在infoq中提到的 架构图: 上图中有个TDDL,是taobao的一

搭建高可用mongodb集群(四)—— 分片

转载自LANCEYAN.COM 按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来解决这个问题. 传统数据库怎么做海量数据读写?其实一句