MongoDB实战系列之五:mongodb的分片配置
md01 10.0.0.11
md02 10.0.0.12
md03 10.0.0.14
2、启动三台机器的mongod实例
根据Replica Set、Sharding策略部署mongod。将两个sharding组部署到三台服务器上,每个sharding组有三个replica set成员。
#Server1:
- mkdir -p /elain/data/mongodb/shard11
- mkdir -p /elain/data/mongodb/shard21
- /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /elain/data/mongodb/shard11 --oplogSize 100 --logpath /elain/data/mongodb/shard11.log --logappend --fork --rest
- /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /elain/data/mongodb/shard21 --oplogSize 100 --logpath /elain/data/mongodb/shard21.log --logappend --fork --rest
#Server2:
- mkdir -p /elain/data/mongodb/shard12/
- mkdir -p /elain/data/mongodb/shard22/
- /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /elain/data/mongodb/shard12 --oplogSize 100 --logpath /elain/data/mongodb/shard12.log --logappend --fork --rest
- /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /elain/data/mongodb/shard22 --oplogSize 100 --logpath /elain/data/mongodb/shard22.log --logappend --fork --rest
#Server3:
- mkdir -p /elain/data/mongodb/shard13/
- mkdir -p /elain/data/mongodb/shard23/
- /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /elain/data/mongodb/shard13 --oplogSize 100 --logpath /elain/data/mongodb/shard13.log --logappend --fork --rest
- /elain/apps/mongodb/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /elain/data/mongodb/shard23 --oplogSize 100 --logpath /elain/data/mongodb/shard23.log --logappend --fork --rest
3、初始化Replica Set 通过命令行初始化两组Replica Set,通过mongo连接到一个mongod
- /elain/apps/mongodb/bin/mongo 10.0.0.11:27017
- config = {_id: 'shard1', members: [
- {_id: 0, host: '10.0.0.11:27017'},
- {_id: 1, host: '10.0.0.12:27017'},
- {_id: 2, host: '10.0.0.14:27017'}]};
- rs.initiate(config);
- /elain/apps/mongodb/bin/mongo 10.0.0.11:27018
- config = {_id: 'shard2', members: [
- {_id: 0, host: '10.0.0.11:27018'},
- {_id: 1, host: '10.0.0.12:27018'},
- {_id: 2, host: '10.0.0.14:27018'}]};
- rs.initiate(config);
4、启动并配置三台Config Server
#Server1、2、3:
- mkdir -p /elain/data/mongodb/config/
- /elain/apps/mongodb/bin/mongod --configsvr --dbpath /elain/data/mongodb/config/ --port 20000 --logpath /elain/data/mongodb/config1.log --logappend --fork
5、部署并配置三台Routing Server
指定所有的config sever地址参数,chunkSize是分割数据时每块(Chunk)的单位大小
#Server1、2、3:
- /elain/apps/mongodb/bin/mongos --configdb 10.0.0.11:20000,10.0.0.12:20000,10.0.0.14:20000 --port 30000 --chunkSize 100 --logpath /elain/data/mongodb/mongos.log --logappend --fork
6、命令行添加分片
连接到mongs服务器,并切换到admin
- /elain/apps/mongodb/bin/mongo 10.0.0.11:30000/admin
- db.runCommand( {
- addshard : "shard1/10.0.0.11:27017,10.0.0.12:27017,10.0.0.14:27017",
- name:"shard1",
- maxsize:2048,
- allowLocal:true } );
- db.runCommand( {
- addshard : "shard2/10.0.0.11:27018,10.0.0.12:27018,10.0.0.14:27018",
- name:"shard2",
- maxsize:2048,
- allowLocal:true } );
- db.runCommand( { listshards : 1 } );
如果列出(sharding)了以上二个你加的shards,表示shards已经配置成功 #激活数据库分片
- db.runCommand( { enablesharding : "elain" } );
要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作:
- db.runCommand( { shardcollection : “<namespace>”,key : <shardkeypatternobject});
注:
a. 分片的collection系统会自动创建一个索引(也可用户提前创建好)
b. 分片的collection只能有一个在分片key上的唯一索引,其它唯一索引不被允许
One note: a sharded collection can have only one unique index, which must exist on the shard key. No other unique indexes can exist on the collection.
- mongoimport -d elain -c test --type csv --headerline --file test.csv --host 10.0.0.11:30000
分片collection例子
- db.runCommand( { shardcollection : "elain.test",key : {id: 1} } )
- mongos> db.chujq.t1.stats();
- {
- "sharded" : true,
- "flags" : 1,
- "ns" : "elain.test",
- "count" : 4058977,
- "numExtents" : 34,
- "size" : 675039816,
- "storageSize" : 818757632,
- "totalIndexSize" : 131854352,
- "indexSizes" : {
- "_id_" : 131854352
- },
- "avgObjSize" : 166.30786919955446,
- "nindexes" : 1,
- "nchunks" : 14,
- "shards" : {
- "shard1" : {
- "ns" : "elain.test",
- "count" : 1860365,
- "size" : 309376352,
- "avgObjSize" : 166.29873815084673,
- "storageSize" : 408920064,
- "numExtents" : 16,
- "nindexes" : 1,
- "lastExtentSize" : 77955072,
- "paddingFactor" : 1,
- "flags" : 1,
- "totalIndexSize" : 60371584,
- "indexSizes" : {
- "_id_" : 60371584
- },
- "ok" : 1
- },
- "shard2" : {
- "ns" : "elain.test",
- "count" : 2198612,
- "size" : 365663464,
- "avgObjSize" : 166.31559547569103,
- "storageSize" : 409837568,
- "numExtents" : 18,
- "nindexes" : 1,
- "lastExtentSize" : 74846208,
- "paddingFactor" : 1,
- "flags" : 1,
- "totalIndexSize" : 71482768,
- "indexSizes" : {
- "_id_" : 71482768
- },
- "ok" : 1
- }
- },
- "ok" : 1
- }
删除片操作
- mongos> db.runCommand({"removeshard" : "10.0.0.11:27018"});
- {
- "msg" : "draining started successfully",
- "state" : "started",
- "shard" : "shard2",
- "ok" : 1
- }
再执行,可看到removeshard的挪动进度
- mongos> db.runCommand({"removeshard" : "10.0.0.11:27018"});
- {
- "msg" : "draining ongoing",
- "state" : "ongoing",
- "remaining" : {
- "chunks" : NumberLong(3),
- "dbs" : NumberLong(0)
- },
- "ok" : 1
- }
例:
- /elain/apps/mongodb/bin/mongod --config /elain/data/mongodb/shard1/shard1.properties --rest
MongoDB实战系列之五:mongodb的分片配置相关推荐
- MongoDB实战系列之二:MongoDB的常用操作
#以服务方式启动mongodb,要求验证 /elain/apps/mongodb/bin/mongod --fork --port 27001 --auth --dbpath /elain/data/ ...
- MongoDB实战(11)Sharding 分片(上)
这是一种将海量的数据水平扩展的数据库集群系统数据分表存储在sharding 的各个节点 上使用者通过简单的配置就可以很方便地构建一个分布式MongoDB 集群. MongoDB 的数据分块称为 chu ...
- 鸿蒙开发实战系列之五:鸿蒙系统原生数据库
鸿蒙开发实战系列之一:鸿蒙开发实战系列之一:圆角 鸿蒙开发实战系列之二:鸿蒙开发实战系列之二:事件总线EventBus/RxBus 鸿蒙开发实战系列之三:鸿蒙开发实战系列之三:网络请求(原生+ Ret ...
- Tensorflow实战系列之五:
打算写实例分割的实战,类似mask-rcnn. Tensorflow实战先写五个系列吧,后面新的技术再添加~~ 转载于:https://www.cnblogs.com/wmr95/p/8846887. ...
- 鸿蒙系统开发者如何加入,鸿蒙开发实战系列之五:鸿蒙系统原生数据库
前言 上文介绍了ObjectBox,属于神器,但是作为一个合格的码农,上的了厅堂,下得了猪圈,神器好用,菜刀也是要会使的嘛,这篇我们就来介绍下鸿蒙系统的数据库如何使用 鸿蒙的关系型数据库是基于SQLi ...
- SCCM2012 R2实战系列之五:发现方法
打开SCCM2012的控制台 点击左侧栏的"管理"选项,然后展开"层次结构配置",点击"发现方法"来配置客户端发现. 勾选" ...
- MongoDB Sharding分片配置
Ps:mongod是mongodb实例,mongos被默认为为mongodb sharding的路由实例. 本文使用的mongodb版本为3.2.9,因此参考网址为:https://docs.mong ...
- mongodb分片配置
#本次配置时间为 2014-11-06 软件版本为:mongodb-linux-x86_64-2.4.3.tgz linux :centos 5.9 64bit ################### ...
- springboot和mongoDB分片配置 集群配置
最近在开发的过程中,遇到mongoDB与springboot集群过程中的集群及分片链接的配置,以及mongoDB通过后台的方式创建索引及联合索引,在网上搜了下没有具体的配置举例,在项目中遇到之后,就顺 ...
最新文章
- BZOJ4401 块的计数
- SAP RETAIL 特征参数文件(Characteristic Profile) I
- 前端开发面试题--html
- php postgresql多条,PHP操作Postgresql封装类与应用完整实例
- 根据html元素的类型设置元素的值
- 【java学习之路】(javaWeb【后端】篇)001.XMLTomcatHttp协议
- ADSL接入路由,电脑共享上网
- 工商企业大数据爬虫系统
- android soundpool 播放音效,Android使用SoundPool播放短音效
- while 循环语句的使用
- html5 canvas 涂鸦画板
- 推荐算法中CTR和CVR的ESMM模型pytorch实现
- ipv6如何测试服务器已经是ipv6协议,怎么测试域名是否支持ipv6
- 【机器学习】常见问题
- WPF Commanding Overview 的笔记
- 从苏宁易购2020双十一战报窥探各品牌座次排行
- 基于layui后台html模板免费下载
- MSP430X1XX系列硬件乘法器,比较器,flash讲解
- 2015年百度之星程序设计大赛 - 资格赛【题解】
- windows批量移动文件bat脚本