在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考。

计划如下:

用5台机器搭建,IP分别为:192.168.58.5、192.168.58.6、192.168.58.8、192.168.58.9、192.168.58.10。分为两个分片,每个分片下有一个primary,一个secondary,一个仲裁。在其中三台启动config server和mongos。

shard1:58.5、58.6、58.10(仲裁)

shard2:58.8、58.9、58.10(仲裁)

config server:58.5、58.8、58.10

mongos:58.5、58.8、58.10

实施如下:

1、所有机器创建mongodb文件夹

mkdir -p /opt/mongodb

cd  /opt/mongodb

2、所有机器下载mongodb的安装程序包

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz

tar xvzf mongodb-linux-x86_64-2.4.8.tgz

3、分别在相应机器建立mongos 、config 、 shard1 、shard2目录

#58.5、58.8、58.10建立mongos目录
mkdir -p /opt/mongodb/mongos/log
#58.5、58.8、58.10建立config server 数据文件存放目录
mkdir -p /opt/mongodb/config/data
#58.5、58.8、58.10建立config server 日志文件存放目录
mkdir -p /opt/mongodb/config/log
#58.5、58.6、58.10建立shard1 数据文件存放目录
mkdir -p /opt/mongodb/shard1/data
#58.5、58.6、58.10建立shard1 日志文件存放目录
mkdir -p /opt/mongodb/shard1/log
#58.8、58.9、58.10建立shard2 数据文件存放目录
mkdir -p /opt/mongodb/shard2/data
#58.8、58.9、58.10建立shard2 日志文件存放目录
mkdir -p /opt/mongodb/shard2/log
 
4、规划组件对应的端口号,这个端口可以自由定义,在本文 mongos为 27017, config server 为 21000, shard1为 22001 , shard2为22002
 
5、58.5、58.8、58.10分别启动配置服务器
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --configsvr --dbpath /opt/mongodb/config/data --port 21000 --logpath /opt/mongodb/config/log/config.log --fork
 
6、58.5、58.8、58.10分别启动mongos服务器
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongos  --configdb 192.168.58.5:21000,192.168.58.8:21000,192.168.58.10:21000  --port 27017   --logpath  /opt/mongodb/mongos/log/mongos.log --fork
 
7、配置各个分片的副本集
#58.5、58.6、58.10分别设置分片1服务器及副本集shard1
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr --replSet shard1 --port 22001 --dbpath /opt/mongodb/shard1/data  --logpath /opt/mongodb/shard1/log/shard1.log --fork
#58.8、58.9、58.10分别设置分片2服务器及副本集shard2
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr --replSet shard2 --port 22002 --dbpath /opt/mongodb/shard2/data  --logpath /opt/mongodb/shard2/log/shard2.log --fork
 
8、分别对每个分片配置副本集

1)登陆192.168.58.5

#设置第一个分片副本集
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:22001
#使用admin数据库
use admin
#定义副本集配置
config = { _id:"shard1", members:[
                     {_id:0,host:"192.168.58.5:22001"},
                     {_id:1,host:"192.168.58.6:22001"},
                     {_id:2,host:"192.168.58.10:22001",arbiterOnly:true}
                ]
         }
#初始化副本集配置
rs.initiate(config);
2)登陆192.168.58.8
#设置第二个分片副本集
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:22002
#使用admin数据库
use admin
#定义副本集配置
config = { _id:"shard2", members:[
                     {_id:0,host:"192.168.58.8:22002"},
                     {_id:1,host:"192.168.58.9:22002"},
                     {_id:2,host:"192.168.58.10:22002",arbiterOnly:true}
                ]
         }
#初始化副本集配置
rs.initiate(config);
 
9、目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到 mongos 路由服务器并不能使用分片机制,还需要设置分片配置,让分片生效
登陆192.168.58.10
#连接到mongos
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:27017
#使用admin数据库
use admin
#串联路由服务器与分配副本集1
db.runCommand( { addshard : "shard1/192.168.58.5:22001,192.168.58.6:22001,192.168.58.10:22001"});
#串联路由服务器与分配副本集2
db.runCommand( { addshard : "shard2/192.168.58.8:22002,192.168.58.9:22002,192.168.58.10:22002"});
#查看分片服务器的配置
db.runCommand( { listshards : 1 } );
 
10、完成

搭建MongoDB分片集群的更多相关文章

  1. Windows 搭建MongoDB分片集群(二)

    在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程 ...

  2. Windows 搭建MongoDB分片集群(一)

    一.角色说明 要构建一个MongoDB分片集群,需要三个角色: shard server  即存储实际数据得分片,每个shard 可以是一个Mongod实例,也可以是一组mongod实例构成得Repl ...

  3. MongoDB 分片集群实战

    背景 在如今的互联网环境下,海量数据已随处可见并且还在不断增长,对于如何存储处理海量数据,比较常见的方法有两种: 垂直扩展:通过增加单台服务器的配置,例如使用更强悍的 CPU.更大的内存.更大容量的磁 ...

  4. MongoDB分片集群原理、搭建及测试详解

    随着技术的发展,目前数据库系统对于海量数据的存储和高效访问海量数据要求越来越高,MongoDB分片机制就是为了解决海量数据的存储和高效海量数据访问而生. MongoDB分片集群由mongos路由进程( ...

  5. 网易云MongoDB分片集群(Sharding)服务已上线

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB sharding cluster(分片集群)是MongoDB提供的数据在线水平扩展方案,包括 ...

  6. 分布式文档存储数据库之MongoDB分片集群

    前文我们聊到了mongodb的副本集以及配置副本集,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13953598.html:今天我们来聊下mongodb的分片 ...

  7. mongodb分片集群

    第一章 1.mongodb 分片集群解释和目的 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 第二章 1. ...

  8. TiDB和MongoDB分片集群架构比较

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近阅读了TiDB源码的说明文档,跟MongoDB的分片集群做了下简单对比. 首先展示TiDB的整体架构 M ...

  9. CentOS7+Docker+MangoDB下部署简单的MongoDB分片集群

    简单的在Docker上快速部署MongoDB分片集群 前言 文中使用的环境如下 OS:CentOS Linux release 7.5.1804 (Core) Docker:Docker versio ...

随机推荐

  1. android usb adb流程[转]

    android adb 概述 android adb的代码分为两部分: kernel层的代码在如下路径: drivers/usb/gadget/f_adb.c drivers/usb/gadget/a ...

  2. UVALIVE 3307 Adventurous Driving

    一开始重新建图搞的.然后参照了别人的博客.这个解法比较好 利用在SPFA维护入队次数.入队次数大于节点数目的位于负环. 那么负环中的点如何DFS到终点.(SPFA从起点开始如果能找到入队大于N那么一定 ...

  3. json相关注解和序列化与反序列化

    使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null,可以用以下的注解方式完成当属性为null时不参与序列化: @JsonSerial ...

  4. vue指令v-bind

    v-bind用于绑定 html 属性,通常会将v-bind缩写(如"v-bind:class"可缩写成":class"): v-bind除了可以绑定字符串类型变 ...

  5. mysql:functional dependency

    0down vote First, a functional dependency in the form A->B means that, given one value for A, we ...

  6. [BZOJ1076][SCOI2008]奖励关 状压dp

    1076: [SCOI2008]奖励关 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3070  Solved: 1595[Submit][Statu ...

  7. 用 grunt-contrib-connect 构建实时预览开发环境 实时刷新

    本文基本是参照着 用Grunt与livereload构建实时预览的开发环境 实操了一遍,直接实现能实时预览文件列表,内容页面.不用刷新页面了,这比以前开发网页程序都简单. 这里要用到的 Grunt 插 ...

  8. webpack + react 前端工程化实践和暂不极致优化

    技术结构 webpack + react + react-router 功能实现 关于打包 1.基于react-router的自定义打包code split.2.分包异步按需加载.3.CommonsC ...

  9. 服务器重启之后wdcp打不开【解决】

    service wdapache restart

  10. SPFA解决单源最短路径

    SPFA(Shortest Path Faster Algorithm): 一:基本算法 在求解单源最短路径的时候,最经典的是 Dijkstra 算法,但是这个算法对于含有负权的图就无能为力了,而 B ...