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. [转]矩阵树$Matrix-Tree$定理与行列式

    [https://www.cnblogs.com/zj75211/p/8039443.html][矩阵树Matrix-Tree定理与行列式]

  2. JDBC(5)-处理大数据

    大数据对象处理主要有CLOB(character large object) 和BLOB(binary large object) 两种类型的字段. 在CLOB中可以存储大字符对象,比如长篇小说:在B ...

  3. android actionbar viewpager 实现类微信主界面布局

    1 Activity public class MainActivity extends FragmentActivity { private ViewPager pager; private Act ...

  4. Git学习系列之Git和TortoiseGit的区别

    不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git. Git有且只有一个,就是linux最初创建的那个叫做Git的程序.现在的维护者的名字我懒得 ...

  5. 自定义ajax,添加loading效果

    自定义ajax /** * @desc 自定义ajax请求,添加等待gif */ var n=0; $.defineAjax=function(obj){ n++; if(!$('#loadingDi ...

  6. git 学习之基础知识

    在前面的一个帖子中我们知道了不同的版本控制系统的不同,在这个帖子中我们会大致的了解到它们是管理各个版本的,这对我们学习 git 是很有帮助的. 对于集中式的版本控制系统来说每次的更新主要记录内容的具体 ...

  7. HTTP Error 502.5 - Process Failure asp.net core error in IIS

    在windows server 2012 上安装完dotnet-win-x64.1.1.1.exe 和 DotNetCore.1.0.4_1.1.1-WindowsHosting.exe后,没有重启服 ...

  8. Java复习第二天

    Day04 1.switch语句的格式?针对格式的解释?以及注意事项? (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ...

  9. ajax上传数据

    ---恢复内容开始--- ajax上传数据,(简洁版) 1.上传普通同表单标签内容. 1.获取表单的内容 1. var file=$('#file').val();(放在点击事件后面) 2. var ...

  10. 从官网下载mod_jk.so

    最近在搞apache和tomcat集群,这里就要用到mol_jk.so,在官网找了很久才知道在哪里下载,英语是硬伤啊. 1.打开tomcat官网 http://tomcat.apache.org/ 2 ...