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. Java解析excel文档并以List<T>输出

    /********************************************************工具类start*********************************** ...

  2. 源码安装caffe2时遇到的问题解决办法

    https://github.com/facebookresearch/DensePose/issues/119

  3. JavaScript 刷题一

    最近读<JavaScirpt编程精解>,想把里面的三个大的程序实现,现在记录下来. 问题一: 从下面这封信中,emily奶奶每封信的结尾都会用同样的格式注明哪只猫出生了,哪只猫死去了.现要 ...

  4. (转)tune2fs命令详解

    tune2fs命令详解(原创) 原文:http://czmmiao.iteye.com/blog/1749232 tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数 ...

  5. <数据挖掘导论>读书笔记3--分类

    1.分类的基本概念 分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y 目标函数也称为分类模型. 2. 解决分类问题的一般方法: 决策树分类法 基于规则的分类法 神经网 ...

  6. rem单位怎么使用

    rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了.但是我对rem综合评价是用来做web app它绝对是最合适的人选之一. ...

  7. Xshell关闭导致jar服务终止,使Jar在CentOS后台运行

    环境:Xsehll6,CentOS7 在项目文件夹新建一个runjar.sh 在sh中写入(举例说明) nohup java -Dfile.encoding=UTF- -jar fin-mgmt-.j ...

  8. 个人总结——Beta版本

    我们这次项目因为种种原因失败了,没办法达到预期的效果,这一点着实让人难过.但是作为一门课程,并不能说因为此次项目的失败就完全一无所获.在不断遇到困难和解决困难中学习,成长.虽然失败,但此次失败的经验教 ...

  9. python web 框架的基本逻辑练习题

    # -*- coding:utf-8 -*- # date : 2017/12/22 from wsgiref.simple_server import make_server # 首先是导入wsgi ...

  10. Spring - 几种RPC模型的使用与比较

    Spring中,用JMS搞RPC时会用到: org.springframework.jms.remoting.JmsInvokerServiceExporter org.springframework ...