Mongodb是一个分布式文档型数据库,在Mongodb中可以通过增加或移除Shard Server实例来扩展或缩小集群的规模。本文将从以下几个方面详细讲解如何增加、移除Shard Server实例。
增加Shard Server实例
步骤一:启动新的Shard Server实例
在进行增加Shard Server实例之前必须先准备一台新的物理机或虚拟机,并在该机器上安装好Mongodb。之后启动这个新的Shard Server实例,并联网进行通信。
步骤二:配置新实例
在新的Shard Server实例上运行Mongodb服务后,需要进行一些配置,这些配置包括配置Shard Server实例的副本集、配置Mongodb的配置服务等。以配置副本集为例,我们可以通过以下命令完成:
rsconf = {
_id : "rs0",
members: [
{ _id: 0, host: "localhost:27017" },
{ _id: 1, host: "localhost:27018" },
{ _id: 2, host: "localhost:27019" }
]
}
rs.initiate( rsconf )
执行以上代码,将会在该Shard Server实例上初始化一个名为“rs0”,且具有三个节点的副本集。
步骤三:添加新的Shard Server实例到集群中
在集群中添加新的Shard Server实例之前,需要先将其添加到Mongodb的配置服务中。以添加到配置服务为例,我们可以通过以下命令完成:
mongos> sh.addShard( "rs0/localhost:27017,localhost:27018,localhost:27019" )
执行以上代码,将会在Mongodb的配置服务中添加一个新的Shard Server实例。
至此,新的Shard Server实例已经成功添加到集群中。
示例说明
例如,在一个拥有两个Shard Server实例的Mongodb集群中,我们需要增加一个新的Shard Server实例。我们可以新启动一台虚拟机,安装好Mongodb并启动服务,这样我们就拥有了一个新的Shard Server实例。接着,我们在这台虚拟机上进行必要的配置,并添加该实例到配置服务中,从而完成新的Shard Server实例的增加。
移除Shard Server实例
步骤一:从集群中移除Shard Server实例
在进行移除之前,需要先确认该Shard Server实例是否可以移除。确认的方法非常简单,只需要通过以下命令检查是否有任何数据在该实例上存储:
db.getSiblingDB("admin").runCommand({removeshard:"<shardName>"})
如果该实例可以移除,执行以下命令:
use admin
db.runCommand({ removeShard: "<shardName>" })
该命令将会从集群中移除指定的Shard Server实例。执行完命令后,等待一段时间让Mongodb将该Shard Server实例上的数据迁移到其它节点上。在迁移完成后,我们就可以将该Shard Server实例从系统中移除了。
步骤二:停止Shard Server实例
等待迁移完成后,在确认该Shard Server实例上没有任何数据存在的情况下,我们可以将该Shard Server实例停止。
示例说明
例如,在一个拥有三个Shard Server实例的Mongodb集群中,我们需要移除一个Shard Server实例。我们需要先确认该实例可以移除,再执行移除命令并等待数据迁移完成。在确认数据已经迁移完成的情况下,我们可以停止该Shard Server实例,并将其从系统中移除。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mongodb增加、移除Shard Server实例 - Python技术站