【MongoDB】在windows平台下mongodb的分片集群(六)

在本篇博客中我们主要讨论下博客的管理。由于已经在前面五篇中写了详细的实例,因此这里就不再举例说明。

一、监控

分片集群是整个体系中比较复杂的一块,因此更应该需要监控。

主要命令: serverstatus和currentOp()

二、手动分区

手动分区意思就是手动对线上分片集群的块进行拆分和迁移。一般而言,一个分片写的越多,它越大。 movechunk命令在这种情况下同样有帮助

三、增加一个分片

sh.addShard("computername:port")

使用这种方式增加容量,要注意向新分片迁移数据所花费的时间。预计迁移速度是每分钟100~200M。最好在索引和工作集达到现有计划添加新分片。

四、删除分片

在一些很少见的情况下,你可能想删除一个分片,可以通过命令removeshard命令进行删除。一旦分片被清空,你还要确认将要删除的分片不是数据库的主分片,可以通过命令config.databases集合进行查询;

db.databases.find()

五、集合去分片

虽然可以删除一个分片,但是没有正式的路径去掉集合的分片。做法就是先用mongodump命令导出数据然后再用mongorestore来恢复数据。

六、备份分片集合

要备份分片集群,就是需要配置数据以及每个分片数据的副本;一种方式是利用monodump命令来导出数据。另一方式就是从每个分片的一个成员里复制数据文件,再从另一台服务器中复制数据文件。

无论那种方式,要确认再备份系统的时候没有块处在移动过程中。

停止均衡器:use config; db.setting.update({_id:"balancer"},{$set:{stopped:true},true})

备份之前重新确认: use config, db.locks.find({"_id":"balancer"})

备份之后别忘了启动均衡器

sh.setBalancerState()

sh.isBalancerRunning()

七、故障转移和恢复

分片成员故障,自动会转移到其他副本集一员。如果有不正常的表现,可以利用重启mongos进行进行重置

配置服务器故障:一个分片集群一般有三台配置服务器,如果有两台发生故障,那么剩余的配置服务器变为只读状态,所有的拆分和均衡操作都会停止。这个对集群的读写没有影响,当三条配置服务器恢复后,均衡器就会它停止的地方那个重新开始工作

mongos故障:如果mongos进程发生故障,一般重启应用服务器;

时间: 2024-12-20 08:14:29

【MongoDB】在windows平台下mongodb的分片集群(六)的相关文章

【MongoDB】在windows平台下mongodb的分片集群(五)

本篇接着上面的四篇继续讲述在window平台下mongodb的分片集群搭建.在分片集群中也照样可以创建索引,创建索引的方式与在单独数据库中创建索引的方式一样.因此这不再多说.本篇主要聚焦在分片键的选取问题上. 分片键通俗来说就是分割海量数据的标记符. 如果更高效的划分海量数据往往依赖于分片键的选择. 分片键选得不好,应用程序就无法利用分片集群所提供的诸多优势.在这种情况下,查询和插入得系能都回显著下降. 一.低效的分片键 1.1 分布差 BSON对象ID是每个mongodb文档的默认主键.所有的

【MongoDB】在windows平台下mongodb的分片集群(三)

在上两篇博客中我们分别阐述了分片集群的工作原理以及搭建过程.在本篇博客中我们主要一起分析分片集群的测试结果: 首先看分片集群的各个状态,可以看的出复制集A和B都是正常的: 一.开启分片集合 开启一个数据库上的分片,这是对任何集合进行分片的先决条件. 假设测试数据库为slidetest. 分片集合定义注意:它看起来和索引定义有几分相似之处,尤其是有那个unique键.在对一个空集合进行分片时候,mongodb会在每个分片上创建一个与分片对应的索引.可以直接连上分片,运行getIndexs()进行验

【MongoDB】在windows平台下mongodb的分片集群(四)

前言: 今天周末却学了一天,有点不想学习了,就在刚写完前两篇后,大概过了一个小时,我就在心里说,如果刚才写的那两篇博客阅读量过了80我就些这篇博客,如果不过,今晚就不再学习了.刚刚一看,一篇恰好80,另一篇是85..所以在此谢谢网友给的动力.那这篇博客继续给大家分享出来. 我些这篇博客的目的想要告诉正在阅读的你,分片集群的好处.前面已经用三篇才讲诉分片集群,但是可能有的小伙伴听得迷惑.还不知道分片集群有什么好处.所以在这篇博客中我打算用现在框架来说明分片集群的好处: 一. 海量数据分布存储. 刚

备份和还原MongoDB分片集群数据

1.使用mongodump备份小量分片集群数据 如果一个分片集群的数据集比较小,可以直接使用mongodump连接到mongos实例进行数据备份.默认情况下,mongodump到非primary的节点进行数据查询. 如: mongodump --host 192.168.100.200 --port 28018 -d taiwan_game1 -o . mongorestore --host 192.168.100.200 --port 28018 taiwan_game1 需要注意的是如果使用

mongoDB(三) mongoDB分片集群

mongoDB分片集群 介绍 解决数据分片,防止数据丢失生产环境需要擦用分片+副本集的部署方式 组成部分 route: 提供入口,不存储数据 configserver: 存储元数据信息,建议使用副本集 shardserver: 数据存储服务,存储真正数据, 也许要使用副本集 依赖关系 当数据插入时,需要从configsrv知道数据要插入哪个shardsrv分片 当用户获取数据时,需要从configsrv知道数据存储在哪个shardsrv分片 集群搭建 使用同一份mongodb二进制文件 修改对应

window平台下MongoDB安装和环境搭建

首先,介绍下MongoDB的优点: · 高可扩展性 · 分布式存储 · 低成本 · 结构灵活 window平台下MongoDB安装和环境搭建: 1.下载安装包或压缩包   官网下载:https://www.mongodb.com/download-center 下载好之后直接安装,安装过程中选择customr 2.添加db存储和日志存储文件夹 在你喜欢的地方新建一个文件夹用于存放数据库的文件,在这个文件夹下还需要新建三个文件夹(我的是在D盘下),一个data,一个logs,一个etc(配置),名

【MongoDB】在windows平台下搭建mongodb的分片集群(二)

在上一片博客中我们讲了Mongodb数据库中分片集群的主要原理.在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程. 图1-1  MongoDB分片集群中的组件 图 1-2 由实例分片集群构成的进程全貌 备注:以上两者图片均引自于Kyle Banker著 丁雪丰译<MongoDB 实战> 2.1 创建分片目录 备注:此处于创建复制集类似,详细请查

MongoDB分片集群配置实例

环境: windows操作系统 mongodb 3.4社区版 目标: 配置包含两个分片一个配置服务器的分片集群.其中每一个分片和一个配置服务器都被配置为一个单独的副本集.如下图所示: 注:每一个分片都应该被配置在一个单独的服务器设备上.方便起见,本文在同一台机器通过不同端口模拟不同服务器上的组件,实现分片集群的配置.(生产环境的配置与此相同,只需使用自己的主机名.端口.路径等即可). 下图为本文配置的分片集群架构,其中的任意节点(副本集节点和分片节点)都是可扩展的. 1.分别为config se

MongoDB 搭建分片集群

在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群.分片集群(Sharded Clustered)的服务器分为三中类型:Router(mongos),Config Server 和 Shard(Replica Set 或 Standalone mongod).使用分片集群,不需要使用强大的计算机,就能存储更多的数据,处理更大的负载.分布式数据库系统的设计目的是: