MongoDBSharding学习操作篇二

接上一篇

创新互联建站10多年企业网站设计服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站设计及推广,对地磅秤等多个行业拥有丰富的网站推广经验的网站建设公司。

14.配置集群中的balancer进程

balancer进程运行在集群中的某一个mongos实例上,确保chunks均匀分布在整个集群上。

更改指定shard的最大存储大小

15.移除已有分片集群中的一个分片

在移除一个分片之前需要先确保这个分片上的数据已经移动到其他分片上。

1)确保Blancer进程已经开启

sh.getBalancerState()

2)确定需要被移除的分片名称

db.adminCommand( { listShards: 1 } )

或者

db.printShardingStatus()

或者

sh.status()

3)移走分片上的数据块

mongos> use admin;
switched to db admin
mongos> db.runCommand({removeShard : "taiwan_shard1"})
{
	"msg" : "draining started successfully",
	"state" : "started",
	"shard" : "taiwan_shard1",
	"ok" : 1
}

根据网络状况和数据量大小,这个操作可能花费几分钟或者几天时间完成

4)检查迁移的状态

mongos> db.runCommand({removeShard : "taiwan_shard1"})
{
	"msg" : "draining ongoing",
	"state" : "ongoing",
	"remaining" : {
		"chunks" : NumberLong(0),
		"dbs" : NumberLong(2)
	},
	"note" : "you need to drop or movePrimary these databases",
	"dbsToMove" : [
		"taiwan_game4",
		"taiwan_game5"
	],
	"ok" : 1
}

这里需要注意的是,如果一个分片是一个或者多个数据库的primary shard,那么这个分片上就存有未被分片的数据。

mongos> use admin;
switched to db admin
mongos> db.runCommand( { movePrimary: "taiwan_game4", to: "taiwan_shard2" })
{
	"primary " : "taiwan_shard2:taiwan_shard2/gintama-taiwan-MongoDB2:28018",
	"ok" : 1
}
mongos> db.runCommand( { movePrimary: "taiwan_game5", to: "taiwan_shard2" })
{
	"primary " : "taiwan_shard2:taiwan_shard2/gintama-taiwan-mongodb2:28018",
	"ok" : 1
}

5)结束迁移过程

mongos> db.runCommand({removeShard : "taiwan_shard1"})
{
	"msg" : "removeshard completed successfully",
	"state" : "completed",
	"shard" : "taiwan_shard1",
	"ok" : 1
}

当state状态为completed时,迁移完成。

参考文档:

http://docs.mongodb.org/v2.4/tutorial/remove-shards-from-cluster/


当前文章:MongoDBSharding学习操作篇二
文章出自:http://bzwzjz.com/article/jgceed.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站建设流程 达州网站设计 定制网站设计 成都网站建设公司 成都网站建设公司 成都网站建设 网站制作 成都定制网站建设 成都网站建设公司 企业网站建设 成都网站建设 成都网站建设公司 成都网站设计公司 成都网站建设 营销型网站建设 重庆网站建设 成都网站设计 成都企业网站建设公司 手机网站制作设计 企业网站制作 网站设计 网站设计制作报价