在部门服务器搭建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. 程序员面试宝典 笔记(第六章 预处理 const 和sizeof())

    void main() { "; cout<< cout<< "; cout<< cout<<strlen(ss2)<< ...

  2. Git-回滚操作

    git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit git log 查询回滚版本唯一commit标识代码 git reset --ha ...

  3. Ajax提交数据的data序列化数据提交即可

    jQuery.ajax({ url: "<s:url value="/contractinfo/finanContractInfoMgrAction!saveOrMod.ac ...

  4. 2.aiomysql实现对数据库异步读取

    有一个库叫做aiomysql,这是一个基于asyncio和pymysql的库.至于为什么可以在tornado中使用,是因为高版本tornado的底层使用了asyncio. import asyncio ...

  5. quote(),unquote(),urlencode()编码解码

    quote(),unquote(),quote_plus(),unquote_plus(),urlencode() ,pathname2url(),url2pathname() urllib中还提供了 ...

  6. PHP的文件操作类

    <?php class file { function file() { die("Class file can not instantiated!"); } //创建目录 ...

  7. flutter演示项目:游侠客户端

    使用flutter实现的游侠客户端. 还有一些页面没写,最主要的问题是无法解析html富文本. https://github.com/axel10/flutter_ali213_client_demo

  8. Jest+Enzyme React js/typescript测试环境配置案例

    本文案例github:https://github.com/axel10/react-jest-typescript-demo 配置jest的react测试环境时我们可以参考官方的配置教程: http ...

  9. python 面向对象(成员,静态,类)的(变量,方法)区别

    静态方法是使用@staticmethod装饰的方法,并且参数表中不需要self或者cls,可以访问类成员变量 默认的方法是有self的,是成员方法,可以访问私有变量和方法(通过self.xxx),或者 ...

  10. NOIP2018提高组模拟题(六)

    购物(shop) Description 小林来到商店中进行购物.商店里一共有 n 件物品,第 i 件物品的价格为 a[i] 元.小林总共需要购买 m 件物品,他希望他所花费的钱最少,请你计算出最小 ...