我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MongoDB Sharding学习操作篇二

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MongoDB Sharding学习操作篇二

接上一篇

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/


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MongoDB Sharding学习操作篇二

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

node.js操作mongodb学习小结

一、准备工作 1、在mongodb创建将要读取的表 创建数据库mongotestuse mongotest;向user表中插入数据db.user.insert({name:'flyoung',age:'18',sex:true});2、安装
2022-06-04

MongoDB学习(二) --- 概念解析、命令行基本操作

1、基础概念下表将帮助您更容易理解Mongo中的一些概念:SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/
MongoDB学习(二) --- 概念解析、命令行基本操作
2016-12-11

Redis基本操作进阶篇学习-

Redis中SORT命令可以对列表类型、集合类型以及有序集合类型键进行排序,并返回显示排序的结果,但是不会对原有数据进行修改。 有序集合Redis有序集合中每个元素都会关联一个double类型的分数。Redis通过分数来为集合中的成员进行从小到大的排序。
Redis基本操作进阶篇学习-
2015-09-03

Linux高级篇学习手册(二)

目录1. linux的crontab定时任务1.1 配置定时任务2. Linux的服务管理6.1 服务管理2.2 服务自启动2.3 演示效果总结1. Linux的crontab定时任务任务调度:是指系统在某个时间执行的特定的命令或程序。任务
2022-06-04

Python 学习日记第二篇 -- 列表

一、列表    列表是一个可以包含所有数据类型的对象的位置有序集合,它是可以改变的。   1、列表的序列操作(Python3)>>> one_list = [1,2,3,4]>>> two_list = ["jonny","jery","d
2023-01-31

Oracle学习(七) --- MyBatis操作、JDBC操作

1、MyBatis操作1.1、环境搭建步骤一:创建项目 test_oracle步骤二:修改pom.xml文件(MyBatis相关依赖、Oracle驱动、测试依赖) changgou3_parent_java78 com.cz
Oracle学习(七) --- MyBatis操作、JDBC操作
2017-02-22

编程热搜

目录