1:启动三个实例
mongod -f /home/mongodb/db27017/mongodb27017.conf
mongod -f /home/mongodb/db27018/mongodb27018.conf
mongod -f /home/mongodb/db27019/mongodb27019.conf

配置文件如下:

verbose = true #日志信息
vvvv = true #日志的级别
logpath=/home/mongodb/db27019/log/mongodb.log #日志文件
logappend=true #设置文件记录格式TRUE为追加,false为覆盖p
port = 27019 #指定端口号
maxConns = 2000 #最大链接数,默认情况是根据系统限制最大不超过2W
pidfilepath =/home/mongodb/db27019/tmp/mongo.pid #进程ID,没有指定则启动时候就没有PID文件
nounixsocket = false #当设置为true时,不会生成socket文件
unixSocketPrefix =/home/mongodb/db27019/tmp #套接字文件路径,默认/tmp
fork = true #后台运行的守护进程模式
dbpath=/home/mongodb/db27019/data #数据存放目录
noprealloc = false #预分配方式来保证写入性能,true会带来性能下降
nssize = 16 #命名空间默认大小16M,最大2G
#慢日志
profile = 1 #0 关。无分析1仅包括慢操作2包括所有操作。
slowms = 200 #大于200ms的日志将会被记录下来
replSet=sharingmxq
configsvr=true
2:进入一台机器进行初始化:

mongo
use admin
rs.initiate(
{
_id: "sharingmxq",
configsvr: true,
members: [
{ _id : 0, host : "localhost:27017" },
{ _id : 1, host : "localhost:27018" },
{ _id : 2, host : "localhost:27019" }
]
}
)

3:创建分片的复制集

[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/data
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/tmp
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/log
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/key
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/data
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/tmp
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/log
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/key
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/key
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/log
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/tmp
[root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/data

启动:

mongod -f /home/mongodb/db37017/mongodb37017.conf
mongod -f /home/mongodb/db37018/mongodb37018.conf
mongod -f /home/mongodb/db37019/mongodb37019.conf

要注意一点,如果是添加分片复制集的话。每一个分片要指定不同的replSet,然后进行初始化。把一个复制集当成是每一个单机节点就好了,但是添加分片的时候必须指定的是master

4:启动一个mongos实例链接配置mongodb数据库
mongos --configdb "sharingmxq"/localhost:27017,localhost:27018,localhost:27019 --port=30000

然后添加分片节点:

use admin
mongos> sh.addShard('localhost:37017')
{ "shardAdded" : "shard0000", "ok" : 1 }
mongos> sh.addShard('localhost:37018')
{ "shardAdded" : "shard0001", "ok" : 1 }
mongos> sh.addShard('localhost:37019')
{ "shardAdded" : "shard0002", "ok" : 1 }

如果三个分片节点使用的是复制集的话就要用以下的方式添加:

mongos> sh.addShard( "sharingmxq/localhost:37017")
{ "shardAdded" : "sharingmxq", "ok" : 1 }
mongos> sh.addShard( "sharingmxq/localhost:37018")
{ "shardAdded" : "sharingmxq", "ok" : 1 }
mongos> sh.addShard( "sharingmxq/localhost:37019")
{ "shardAdded" : "sharingmxq", "ok" : 1 }

5:分片的配置

mongos --port=30000
为某个数据库启动分片
sh.enableSharding("maxiangqian")
为某张表添加分片:
sh.shardCollection("maxiangqian.maxiangqian", { 'id':1} )
sh.shardCollection('aedata.ac01_test',{'id':1,'idcard':1})

6:验证分片是否完成

mongos --port=30000
use maxiangqian
for (var i = 1; i <= 100000; i++) db.maxiangqian.save({id:i,"test1":"testval1"});

登录各个分片服务器进行验证:

99981
1
18
已经完成了分片。但是为什么分布会不均匀呢,因为我们使用的是RANGE分区,再插入他个九十万看一下。(要区别hash分区和range分区,hash分区具有易扩展性,但是分布的服务器却不好控制)
for (var i = 100000; i <= 1000000; i++) db.maxiangqian.save({id:i,"test1":"testval1"});
再去验证一下:
328487 --port=37019
335552 --port=37018
335962 --port=37017

mongodb 3.4分片复制集配置的更多相关文章

  1. replcation set (复制集)配置过程 --mongodb

    一,配置规划 复制集原理(基本构成是1主2从的结构,自带互相监控投票机制(Raft(MongoDB)  Paxos(mysql MGR 用的是变种))如果发生主库宕机,复制集内部会进行投票选举,选择一 ...

  2. mongodb使用mongos链接复制集

    我们知道mongodb现在生产环境大部分还是使用的复制集来作为主流,据我了解.很多公司现在都是使用复制集的方式,而我们通过mongos可以巧妙的解决链接的问题,我们先从环境说起: 首先我们要模仿搭建的 ...

  3. Studio 3T for MongoDB连接51.212复制集

    Studio 3T for MongoDB连接51.212复制集 [ #DirectConection Authentication Mode - Basic(MONGODB-CR or SCEAM- ...

  4. mongodb 3.4复制集配置

    1:启动三个实例 /bin/mongod --config /home/mongodb/db27017/mongodb27017.conf /bin/mongod --config /home/mon ...

  5. spring mongodb 复制集配置(实现读写分离)

    注:mongodb当前版本是3.4.3   spring连接mongodb复制集的字符串格式: mongodb://[username:password@]host1[:port1][,host2[: ...

  6. Windows 下MongoDB复制集配置

    1.下载服务.https://www.mongodb.com/   点击products 下拉第二列MongoDB server  选择 4.0.6 2.下载下来后 有限管理员运行 一路安装,可以不用 ...

  7. mongodb 3.2 分片 + 副本集

    从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加 ...

  8. MongoDB之Replica Set(复制集复制)

    MongoDB支持两种复制模式: 主从复制(Master/Slave) 复制集复制(Replica Set) 下面主要记录我在centos虚拟机上安装replica set,主要参考:http://d ...

  9. mongodb复制集配置

    #more /opt/mongodb3.0/mongodb_im_conf_47020/mongodb3.0_im_47020.cnf dbpath = /opt/mongodb3.0/mongodb ...

随机推荐

  1. Image和Base64相互转换

    1.图片转换为Base64 /// <summary> /// 图片转换为base64 /// </summary> /// <param name="imag ...

  2. 【lua】LWT HttpdModule

    要使用httpd模块,需要在脚本开头添加: require "httpd" httpd.pairs(apr_table) 用以遍历apr_table for key, value ...

  3. 【CSS】布局之选项卡与图片库

    前面对简单的选项卡和简单的图片库进行了实现,现在把两者结合起来,实现下面这样的效果. 现在附上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4 ...

  4. 大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作

    第十九章 Scala语言的数据结构和算法19.1 数据结构(算法)的介绍19.2 看几个实际编程中遇到的问题19.2.1 一个五子棋程序19.2.2 约瑟夫问题(丢手帕问题)19.2.3 其它常见算法 ...

  5. 九度oj题目1341:艾薇儿的演唱会

    题目1341:艾薇儿的演唱会(40分) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:522 解决:237 题目描述: 艾薇儿今天来到了中国,她计划两天后在哈尔滨举行一场个人的演唱会.由于 ...

  6. js验证护照号码是否合规

    需求:最近要做实名验证的功能,但是验证我们要验证严谨一点,参考了网上关于验证护照号码的代码,总结一下. 代码: //验证护照号码 function checkPassport(code){ var t ...

  7. PHP学习4——面向对象

    主要内容: 创建类 成员方法 构造方法 析构方法 封装 继承 接口 多态 静态成员 常用关键字 常用魔术方法 从PHP5开始引入了面向对象的全部机制,面向对象的特性符合软件工程的3个目标:重用性,灵活 ...

  8. ie6的display:inline-block实现

    摘抄自原文链接 简单来说display:inline-block,就是可以让行内元素或块元素变成行内块元素,可以不float就能像块级元素一样设置宽高,又能像行内元素一样轻松居中. 在ie6中给div ...

  9. MySql 双实例安装

    1.官网下载压缩包 https://dev.mysql.com/downloads/mysql/ 2.解压到D盘 3.修改my.ini 文件 [mysql] # 设置mysql客户端默认字符集 def ...

  10. HDU 2167 Pebbles 状态压缩dp

    Pebbles Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...