M202: MongoDB Advanced Deployment and Operations - Chapter 4: Sharded Cluster Management

原创 2016年08月29日 20:17:24

4.1: Pre-splitting data

mkdir c1 s1 s2 s3
mongod --configsvr --dbpath c1
mongos --configdb m202-ubuntu1404
mongod --dbpath s1 --port 27001
mongod --dbpath s2 --port 27002
mongod --dbpath s3 --port 27003
//sh.addShard( "m202-ubuntu1404:27001" )
db.adminCommand({addShard:"m202-ubuntu1404:27001",name:"shard0"})
db.adminCommand({addShard:"m202-ubuntu1404:27002",name:"shard1"})
db.adminCommand({addShard:"m202-ubuntu1404:27003",name:"shard2"})

sh.stopBalancer()
sh.getBalancerState()

sh.enableSharding("m202")
sh.shardCollection("m202.presplit", {a:1})

db.adminCommand({split : "m202.presplit", middle : { a : 0 }})
db.adminCommand({split : "m202.presplit", middle : { a : 7 }})
db.adminCommand({split : "m202.presplit", middle : { a : 10 }})
db.adminCommand({split : "m202.presplit", middle : { a : 14 }})
db.adminCommand({split : "m202.presplit", middle : { a : 15 }})
db.adminCommand({split : "m202.presplit", middle : { a : 20 }})
db.adminCommand({split : "m202.presplit", middle : { a : 21 }})
db.adminCommand({split : "m202.presplit", middle : { a : 22 }})
db.adminCommand({split : "m202.presplit", middle : { a : 23 }})
db.adminCommand({split : "m202.presplit", middle : { a : 24 }})

sh.moveChunk("m202.presplit", {"a": 14}, "shard1")
sh.moveChunk("m202.presplit", {"a": 15}, "shard1")
sh.moveChunk("m202.presplit", {"a": 20}, "shard1")
sh.moveChunk("m202.presplit", {"a": 21}, "shard2")
sh.moveChunk("m202.presplit", {"a": 22}, "shard2")
sh.moveChunk("m202.presplit", {"a": 23}, "shard2")

sh.startBalancer()
sh.getBalancerState()

4.2: Advantages of pre-splitting

Which of the following are advantages of pre-splitting the data that is being loaded into a sharded cluster, rather than throwing all of the data in and waiting for it to migrate?

  • Data can get lost during chunk migration. Pre-splitting allows you to avoid that.
  • You have more control over the shard key if you pre-split.
  • (OK) You can decide which shard has which data range initially if you pre-split the data
  • (OK) Migration takes time, especially when the system is under load. Pre-splitting allows you to avoid that.

4.3: Upgrading a sharded cluster to 3.0

Which of the following are required or recommended when upgrading a sharded cluster to MongoDB 3.0? Check all that apply.

  • (OK) If your MongoDB deployment is not already running MongoDB 2.6, upgrade to 2.6 first.
  • (OK) Upgrade all mongos instances before upgrading mongod instances.
  • Upgrade all mongod instances before upgrading mongos instances.
  • (OK) Disable the balancer.
  • Upgrade the secondaries on all shards before upgrading any primary.

4.4: Using shard tags to manage data

mongo --nodb
config = { d0 : { smallfiles : "", noprealloc : "", nopreallocj : ""}, d1 : { smallfiles : "", noprealloc : "", nopreallocj : "" }, d2 : { smallfiles : "", noprealloc : "", nopreallocj : ""}};
cluster = new ShardingTest( { shards : config } );

sh.stopBalancer()

sh.addTagRange('testDB.testColl', {createdDate:ISODate("2013-10-01")}, {createdDate:ISODate("2014-02-01")}, "LTS")
sh.addTagRange('testDB.testColl', {createdDate:ISODate("2014-02-01")}, {createdDate:ISODate("2015-01-01")}, "STS")
sh.status() 
use config
db.tags.remove({_id : { ns:"testDB.testColl", min:{createdDate:ISODate("2014-01-01")}}, tag:"STS" })
db.tags.remove({_id : { ns:"testDB.testColl", min:{createdDate:ISODate("2013-10-01")}}, tag:"LTS" })

sh.startBalancer()
sh.status() 

-eof-

mongodb分片部署和管理

一.部署分片集群 在3.2版本中,官方建议对所有生产的config server和shard server都使用复制集.其中config server对复制集有如下要求: 1.必须没有仲裁节点 ...
  • su377486
  • su377486
  • 2016年06月22日 20:35
  • 8220

MongoDB 3.4 分片与副本集实践笔记

第一步: 准备数据节点 我们准备两个单节点,当然,你也可以使用副本集作为数据节点,只是我的PC实在跑不动…… 必须添加–shardsvr参数。 mongod --port 32770 --shar...
  • mlz_2
  • mlz_2
  • 2017年05月12日 09:24
  • 419

Spring实战(第4版) Spring Inaction 笔记(第一章)依赖注入和AOP

void main() { } 大家好 大家好
  • makefriend7
  • makefriend7
  • 2016年11月29日 09:08
  • 406

Mongodb集群搭建的三种方式

Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mong...
  • luonanqin
  • luonanqin
  • 2013年01月13日 23:40
  • 119248

CentOs6.5上安装MySQL-Cluster 7.3.4的经历(2天查找各种资料试验结果)

为了安装这个cluster,研究了2天才彻底搞定,因此将此次研究经验记录下来供大家参考学习,避免重复走弯路,安装分为如下几个阶段: 环境说明: CentOs6.5 + MySQL-Cluster...
  • jackxinxu2100
  • jackxinxu2100
  • 2014年03月11日 15:46
  • 13233

Advanced Installer10.0中文版完美安装软件教程 msi,exe制作教程

1.下载地址:http://download.csdn.net/detail/zhangli865621030/7349523   2.
  • zhangli865621030
  • zhangli865621030
  • 2014年05月15日 10:28
  • 2442

Unreal Engine 4 —— UE4的内存模型杂七杂八

这篇博客介绍了UE4的内存模型相关的东西与我在运用UE4时相关的一些心得。
  • noahzuo
  • noahzuo
  • 2017年08月03日 17:31
  • 636

AdvancedInstaller用户自定义动作——卸载程序

使用过程中发现问题:用AdvancedInstaller本身自带的卸载程序会出现卸载不干净的问题,有残留日志文件,注册文件等。。。 通过实验得知可以通过用户自定义动作(Custom Actions)...
  • qq_20849387
  • qq_20849387
  • 2017年11月02日 10:50
  • 157

BaseSDK和DeploymentTarget究竟是什么意思?

Xcode为开发者提供了两个可配置的设置:第一个是Base SDK,第二个是iOS的Deployment Target。通过配置这两个参数可定制应用的功能以及可运行的设备和操作系统版本。...
  • V5V6_neil
  • V5V6_neil
  • 2014年10月31日 17:58
  • 956

利用Haproxy给MySQL Cluster做负载均衡

 一、环境 第一台SQL节点:ip:10.0.31.40;port:4306 第二台SQL节点:ip:10.0.31.41;port:4306 haproxy服务器:ip:10.0.3...
  • cxzhq2002
  • cxzhq2002
  • 2015年02月27日 15:37
  • 1085
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:M202: MongoDB Advanced Deployment and Operations - Chapter 4: Sharded Cluster Management
举报原因:
原因补充:

(最多只允许输入30个字)