博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB实战(11)Sharding 分片(下)
阅读量:6355 次
发布时间:2019-06-23

本文共 892 字,大约阅读时间需要 2 分钟。

管理维护Sharding

 

列出所有的Shard Server

 

查看Sharding信息

 

判断是否是Sharding

 

对现有的表进行Sharding

刚才我们是对表test.users 进行分片了,下面我们将对库中现有的未分片的表test.users_2 进
行分片处理
表最初状态如下,可以看出他没有被分片过:

 

对其进行分片处理:

再次查看分片后的表的状态,可以看到它已经被我们分片了

 

新增Shard Server

刚才我们演示的是新增分片表,接下来我们演示如何新增Shard Server

启动一个新Shard Server 进程

配置新Shard Server

查看分片表状态,以验证新Shard Server

我们可以发现,当我们新增Shard Server 后数据自动分布到了新Shard 上,这是由MongoDB

内部自已实现的。

 

移除Shard Server

有些时候有于硬件资源有限,所以我们不得不进行一些回收工作,下面我们就要将刚刚启用

的Shard Server 回收,系统首先会将在这个即将被移除的Shard Server 上的数据先平均分配
到其它的Shard Server 上,然后最终在将这个Shard Server 踢下线, 我们需要不停的调用
db.runCommand({"removeshard" : "localhost:20002"});来观察这个移除操作进行到哪里了:

 

最终移除后,当我们再次调用db.runCommand({"removeshard" : "localhost:20002"});的时候系统

会报错,已便通知我们不存在20002 这个端口的Shard Server 了,因为它已经被移除掉了。

接下来我们看一下表中的数据分布:

可以看出数据又被平均分配到了另外2 台Shard Server 上了,对业务没什么特别大的影响。

 

但是为什么节点还存在呢,这里留了一个疑问???

 

本文转自shayang8851CTO博客,原文链接:http://blog.51cto.com/janephp/1331401,如需转载请自行联系原作者

你可能感兴趣的文章
Android Activity 生命周期
查看>>
Formatted print to circular buffer -- xprintf
查看>>
自定义UIPopoverController的界面颜色、边框及样式
查看>>
char*与wchar_t*之间的转换
查看>>
linux内存查看
查看>>
A Simple Problem with Integers(线段树区间更新模板题)
查看>>
客户定制 音量控制 Preference
查看>>
sqlite关于日期的处理
查看>>
数据schemaAvro简介
查看>>
LINQ to Sql系列三 延迟加载
查看>>
You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
查看>>
SQL创建索引(转)
查看>>
第十四学 linux内核——进程管理——进程控制块的内容(3)
查看>>
引路蜂地图应用详细解说
查看>>
hdu1023(大数+递推)
查看>>
【Linux_Fedora_应用系列】_2_如何安装视频播放器和视频文件解码
查看>>
关于ps cs5的一些问题
查看>>
谈一个程序员创业的前期投资和成功的可能性
查看>>
【web技术】html特效代码(二)
查看>>
Ubuntu分区方案归总
查看>>