0.概述

mongodb分片搭建,版本号4.0.2,以下除了创建opt文件夹以外,所有操作均在mongodb用户下面执行

准备三台机器:
192.168.56.81
192.168.56.82
192.168.56.83
配置服务器端口号:20000
路由服务器端口号:20004
分片服务器端口号:20001/20002/20003

1.启动Config Server,端口号设置为20000

(把以下的步骤分别在三台服务器中执行一遍)
mkdir /opt
chown mongodb:mongodb /opt
su - mongodb
cd /opt
mkdir -p ./shard/config
mkdir -p ./shard/config/data
mkdir -p ./shard/config/log

mongod --configsvr --dbpath=/opt/shard/config/data --logpath=/opt/shard/config/log/config.log --port 20000 --fork --logappend --replSet rsconf --bind_ip_all

2.在其中一台初始化Config Server集群

192.168.56.81:
mongo --port 20000

use admin

config = {_id: 'rsconf', members: [
{_id: 0, host: '192.168.56.81:20000'},
{_id: 1, host: '192.168.56.82:20000'},
{_id: 2, host: '192.168.56.83:20000'}]}

rs.initiate(config)
rs.conf()
rs.status()

3.启动Query Routers,端口号设置为20004

(把以下的步骤分别在三台服务器中执行一遍)
cd /opt
mkdir -p ./shard/mongos
mkdir -p ./shard/mongos/log

mongos --configdb rsconf/192.168.56.81:20000,192.168.56.82:20000,192.168.56.83:20000 --logpath=/opt/shard/mongos/log/mongos.log --port 20004 --fork --logappend

4.启动Shard Server 1,集群名字rs1,端口号20001

(把以下的步骤分别在三台服务器中执行一遍)
cd /opt
mkdir -p ./shard/replset/rs1/data
mkdir -p ./shard/replset/rs1/log

mongod --shardsvr --replSet rs1 --dbpath=/opt/shard/replset/rs1/data --logpath=/opt/shard/replset/rs1/log/rs1.log --fork --port 20001 --logappend --bind_ip_all

5.在其中一台初始化Shard Server副本集

192.168.56.81:
mongo --port 20001

use admin

config = {_id: 'rs1', members: [
{_id: 0, host: '192.168.56.81:20001'},
{_id: 1, host: '192.168.56.82:20001'},
{_id: 2, host: '192.168.56.83:20001', 'arbiterOnly':true}]}

rs.initiate(config)

6.重复第4,5步

注意修改 rs1 --> rs2, rs3
注意修改 20001 --> 20002, 20003

7.登陆mongos路由

192.168.56.81:
mongo --port 20004

use admin

db.runCommand({"addshard":"rs1/192.168.56.81:20001,192.168.56.82:20001,192.168.56.83:20001"});
db.runCommand({"addshard":"rs2/192.168.56.81:20002,192.168.56.82:20002,192.168.56.83:20002"});
db.runCommand({"addshard":"rs3/192.168.56.81:20003,192.168.56.82:20003,192.168.56.83:20003"});

激活分片
db.runCommand({"enableSharding":"test"}); #test是数据库名字
db.runCommand({"shardCollection":"test.students",key:{name:1}}); #test.students是集合名字

8.查看分片的状态

db.printShardingStatus()

9.验证分片情况

for (var x=1; x<200000; x++) {
db.students.insert({"name":"fuckmongo - " + x,"stuid":x});
}

for (var x=1; x<200000; x++) {
db.students.insert({"name":"lovemongo - " + x,"stuid":x});
}

for (var x=1; x<200000; x++) {
db.students.insert({"name":"hatemongo - " + x,"stuid":x});
}

for (var x=1; x<2000000; x++) {
db.students.insert({"name":"moremongo - " + x,"stuid":x});
}

rs.status()
db.students.stats()

Mongodb - 切片搭建的更多相关文章

  1. 《OD大数据实战》MongoDB环境搭建

    一.MongonDB环境搭建 1. 下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 2. 解压 tar -zxvf ...

  2. 【MongoDB】MongoDB服务器搭建(Unix/Linux)

    1.安装MongboDB安装包(开源免费的哟) 在Mac 下 brew install mongoDB 就可以啦 安装要等一会儿,大概200M 2. cd到MongboDB文件夹 - 如果是用home ...

  3. MongoDB+php7搭建

    0x00前言: 今天一位非计算机专业的朋友问我怎么打开.bson文件,我第一反应.bson文件是什么,网上查了下是mongodb的传输文件.也就是类似于mysql的.sql文件一样 之前看过mongo ...

  4. MongoDB——环境搭建

    项目中需要将一些读多改少的数据存入到 MongoDB 数据库中来提高效率,于是简单学习一些MongoDB数据库的知识,来进行应对,也是对自己知识盲区进行补充.本文主要学习介绍MongoDB数据库在Li ...

  5. MongoDB:搭建三节点 Replica Set 环境

    今天学习了搭建 MongDB 复制环境,实验环境是在虚拟机上同一系统,并搭建三节点 Replica Set,根据文档上的描述,mongodb 复制配置简单,并且能够自动 failover,这些高级特性 ...

  6. mongodb主从搭建

    #tigergao 官网进行下包,可以下载源码包或者二进制包,本次下载的为二进制包,进行试验. 主服务器搭建: mkdir mongomaster cp mongodb-linux-x86_64-rh ...

  7. MongoDB环境搭建

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  8. NoSql数据库初探-mongoDB环境搭建

    NoSQL数据库一改关系型数据库的缺点,更容易的集成.分布式.无模式.故障恢复等特点,正在一步步餐食关系型数据库的市场,作为一个与时俱进的码农了解一下新技术是必须的,尤其是在读了<NoSql精粹 ...

  9. Windows下MongoDB环境搭建

    MongoDB下载 登录MongoDB官网:www.mongodb.org:点击[Download MongoDB]按钮,进入如下所示界面 选择目标操作系统及其版本,比如这里选择的是64位的Windo ...

随机推荐

  1. jquery 跨域请求

    参考博客:  http://www.cnblogs.com/freeweb/p/4908832.html 由于安全性问题, js 一般不支持跨域操作,但只要在客户端与服务器端引入相同的参数,通过jso ...

  2. F - New Distinct Substrings (后缀数组)

    题目链接:https://cn.vjudge.net/contest/283743#problem/F 题目大意:给你一个字符串,然后让你求出不同的子串的个数. 具体思路:首先,一个字符串中总的子串个 ...

  3. d 属性: 赋予字段执行动作的能力

    1.对只读属性误解 property AppSetting: ISuperobject read fAppSetting;当看到 AppInfo.AppSetting.D['lastLat'] := ...

  4. ViewPager制作APP引导页+若干动画效果

    ViewPager使用FragmentStatePagerAdapter做Adapter,引导页使用多Fragment形式. 见http://www.cnblogs.com/bmbh/p/567276 ...

  5. python读写文件字符集

    操作I/O的能力是由操作系统的提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外.  读写文件是需要请求操作系统去操作磁盘的  所以默认的编码就是你平台的编 ...

  6. 【转】Windows下安装python2和python3双版本

    [转]Windows下安装python2和python3双版本 现在大家常用的桌面操作系统有:Windows.Mac OS.ubuntu,其中Mac OS 和 ubuntu上都会自带python.这里 ...

  7. TypeError: 'range' object does not support item assignment

    TypeError: 'range' object does not support item assignment I was looking at some python 2.x code and ...

  8. STM32F103X datasheet学习笔记---USART

    1.前言 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换. USART利用分数波特率发生器提供宽范围的波特率选择. 它支持同步 ...

  9. mybatis主键自增长

    在数据库中建序列:SEQ_T_RESOURCE 第一种:会在传入该方法的的参数集合中添加主键元素,相当于:map.put("RES_ID",xxx); <insert id= ...

  10. http响应头设置

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletExcep ...