一、检查集群状态

1.1 使用sh.status()查看集群摘要信息

1、使用sh.status()可以查看分片信息、数据库信息、集合信息

sh.status()

如果数据块较多时,使用sh.status(true)

又是输出会很多,就不会截断,要使用如下查看

2、too many chunks to print, use verbose if you want to force print

可通过执行以下命令查看

printShardingStatus(db.getSisterDB("config"),1);

1.2 检查配置信息

永远不要直接连接到配置服务器,以防配置服务器被不小心修改或者删除。应先连接到mongos,

然后通过config数据库来查询相关信息,方法与查询其他数据库一样。

>use config

>show tables;

1、config.shards

shards集合跟踪记录集群内所有分片的信息。文档结构如下

分片的"_id"来自与副本集的名称,所以集群中的每个副本集名称都必须是唯一的。

更新副本集配置的时候(比如添加删除成员),host字段会自动更新

2、config.databases

databases集合跟踪记录集群中所有数据库的信息,不管数据库有没有分片

如果在数据库上执行enableSharding,此处的"partition"字段值是true。

primary是主数据库。数据库的所有集合均默认被创建在数据库的主分片上。

3、config.collections

collections集合跟踪记录所有分片的集合信息(非分片集合信息除外)

1)_id 集合的命名空间

2)key 片键。本例中由x和y组成的复合片键

3)unique 表明片键是一个唯一索引。该字段只有当值为true时才会出现。片键默认不是唯一的。

4、config.chunks

sh.status()大部分信息来自于config.chunks

chunks集合记录所有集合中所有块的信息。chunks集合中的一个典型文档结构如下

1)_id块的唯一标识符。通常由命名空间、片键和块的下边界值组成

2)ns 块所属的集合名称

3)min 块范围的最小值

4)max 快范围的最大值

5)shard 块所属分片

6)lastmod与lastmodEpoch字段用于记录块的版本

5、config.changelog

changelog集合用于跟踪记录集群的操作,因为该集合会记录所有的拆分和迁移操作。

1)拆分记录文档结构如下

2)当分片收到mongos发来的moveChunk命令时,它会

(1)检查命令的参数

(2)向配置服务器申请获得一个分布锁,一边进入迁移过程

(3)尝试连接到to分片

(4)数据复制,这是整个过程的“临界区”

(5)与to分片和配置服务器一起确认迁移是否成功

6、config.tags

该集合的创建是在为系统配置分片标签时发生的。每个标签都与一个块范围相关联

7、config.settings

该集合含有当前的均衡器设置和块大小的文档信息。

通过修改该集合,可以开启或者关闭均衡器,也可以修改块的大小。

注意:

应该总是连接到mongos修改该集合的值,而不是直接连接到配置服务器

2、对集合分片步骤

1)启动数据库分片

sh.enableSharding("test")

2)启动集合分片

对集合分片时要选择一个分片键(shard key)

如果集合已存在,那么分片键上必须有索引

db.users.ensureIndex({"username":1})

sh.shardCollection("test.users",{"username":1})

3、查看chunk信息

db.chunks.find(criteria,{"min":1,"max":1})

MongoDB 分片管理(一)检查集群状态的更多相关文章

  1. MongoDB 分片管理(三)服务器管理

    MongoDB 分片管理(三)服务器管理

  2. MongoDB 分片管理(不定时更新)

    背景: 通过上一篇的 MongoDB 分片的原理.搭建.应用 大致了解了MongoDB分片的安装和一些基本的使用情况,现在来说明下如何管理和优化MongoDB分片的使用. 知识点: 1) 分片的配置和 ...

  3. MongoDB 分片管理

    在MongoDB(版本 3.2.9)中,分片集群(sharded cluster)是一种水平扩展数据库系统性能的方法,能够将数据集分布式存储在不同的分片(shard)上,每个分片只保存数据集的一部分, ...

  4. MongoDB 分片管理(四)数据均衡 -- 特大快

    1.1 特大快形成 如果用date字段作为片键,集合中date是一个日期字符串,如:year/month/day,也就是说,mongoDB一天创建一个块.因块内所有文档的片键一样,因此这些块是不可拆分 ...

  5. MongoDB 分片管理(四)数据均衡

    通常来说,MongoDB会自动处理数据均衡. 1.1 集群分片的块的均衡 注意,均衡器只使用块的数量,而非数据大小,来作为衡量分片间是否均衡的指标. 1.2 均衡器 1.执行所有数据库管理操作前,都应 ...

  6. MongoDB 分片管理(二)查看网络连接

    1.1 查看连接统计 connPoolStats,查看mongos与mongod之间的连接信息,并可得知服务器 上打开的所有连接 1.2 限制连接数量

  7. Mongodb 笔记07 分片、配置分片、选择片键、分片管理

    分片 1. 分片(sharding)是指将数据拆分,将其分散存放在不同的机器上的过程.有时也用分区(partitioning)来表示这个概念.将数据分散到不同的机器上,不需要功能强大的大型计算机就可以 ...

  8. Mongodb分片集群技术+用户验证

    随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,“分片”就用这个来解决这个问题. 从图中可以看到有四个组件:mongos.config server. ...

  9. MongoDB分片 在部署和维护管理 中常见事项的总结

    分片(sharding)是MongoDB将大型集合分割到不同服务器(或者说集群)上所采用的方法,主要为应对高吞吐量与大数据量的应用场景提供了方法. 和既有的分库分表.分区方案相比,MongoDB的最大 ...

随机推荐

  1. Linux基础-04-权限

    1. 查看文件的权限 1) 使用ls –l命令查看文件上所设定的权限. -rw-r--r-- 1 root root 605 Mar 18 20:28 .jp1.tar.gz 权限信息 属主 属组 文 ...

  2. Scratch零基础起步攻略(一)

    通常,类似这样的文章开头总要阐述一大段关于编程的重要性,还有自己的专业性.权威性等等,我就都省掉了…… 简单介绍一下自己,从事计算机编程教育前前后后有近20年了,面对了不同年龄层次的学员,大部分跟着我 ...

  3. Ajax跨越请求失败,解决

    跨越请求 1.1什么是跨域(两个不同系统之间的访问.调用) (1)域名不同,即两个不同的应用. (2)域名相同,但是端口不同,即同一个应用中的不同子系统. 1.2 Ajax跨域请求的缺陷 (1)创建t ...

  4. stdmap 用 at() 取值,如果 key 不存在,不好意思,程序崩溃。QMap 用 value()取值,如果 key 不存在,不会崩溃,你还可以指定默认值

    我觉得 Qt6 最应该升级的是容器类 stdmap 在遍历的时候,同时获取 key 与 value 非常方便: for(auto& var:map){    qDebug()<<v ...

  5. vue实现简单的点击切换颜色

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. C#中using的用途

    using System;                                                    --主命名空间,包含所有.net基础类型和通用类型,比如Object, ...

  7. galera集群

    一.环境准备 1.各主机配置静态域名解析: cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhos ...

  8. K2 BPM_规范内部供应链流程,提高企业整体绩效_工作流流程管理

    方案背景 随着企业竞争的加剧.顾客需求的多样化以及市场变化的不确定因素增多,企业与企业间的竞争已经逐步转变为供应链与供应链间的竞争.企业只有在内部各业务流程有机统一的状态下,再与外部企业进行融合与协作 ...

  9. Python函数Day5

    一.内置函数 globals()    将全部的全局变量以字典的形式返回 locals()      将当前作用域的所有变量以字典的形式返回 a = 1 b = 2 def func(x): c = ...

  10. jquery基础知识3

    1.jquery的位置信息 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...