首页 > 数据库 >MongoDB 7.0 元数据检查

MongoDB 7.0 元数据检查

时间:2023-12-16 14:15:24浏览次数:36  
标签:检查 MongoDB 分块 checkMetadataConsistency 7.0 集群 分片 集合 路由表

除了分片键分析器之外,元数据检查器(checkMetadataConsistency())也是 DBA 工作中的一项额外工具。

分片集群很好,但同时也是一项复杂的功能,尤其是当我们开始尝试了解它是如何在后台工作以符合一致性等要求时。

对于需要管理分片集群的人来说,很可能会遇到元数据不一致的问题:集合具有不同的uuid、范围重叠的路由表以及许多其他令人不愉快的问题。

处理元数据是一项具有挑战性的任务,主要是因为修改元数据可能会导致一系列问题,使集群处于不希望出现的状态,而这正是我们要避免的。

而且,元数据不一致可能会悄无声息地存在于集群中,只有在特定操作/场景发生时才会被发现。checkMetadataConsistency() 可以帮助你跟踪这种情况:

·db.checkMetadataConsistency() :对集群或数据库的分片元数据执行一致性检查。
·db.collection.checkMetadataConsistency() :对集合的分片元数据执行一致性检查。
·sh.checkMetadataConsistency() :对集群的分片元数据执行一致性检查。

 

checkMetadataConsistency 命令会在分片元数据和索引上执行一些列检查,并返回包含不一致的文档数组。

 

这些检查分别是:

·CollectionUUIDMismatch:集合在本地分片上的 uuid 与 config.collections 集群目录中注册的 UUID 不同。 
·CorruptedChunkShardKey:路由表中的 chunk 的最大、最小键与集合对应的分片键不匹配
·CorruptedZoneShardKey:路由表中包含的zone的最小键或最大键与集合分片键不一致。
·HiddenShardedCollection:在 config.collections 集群目录中注册了一个不存在的数据库下的集合。
·InconsistentIndex:不同分片的同一索引包含不同的元数据,或者索引在某些分片上不存在
·MisplacedCollection:未作分片的集合位于非主分片上
·MissingRoutingTable:没有路由表的分片集合
·MissingShardKeyIndex:存在一个没有与集合分片键兼容的索引的分片集合。
·RoutingTableMissingMaxKey:路由表中存在范围缺口。路由表中的最后一个分块边界未达到最大键值。
·RoutingTableMissingMinKey:路由表中存在范围缺口。第一个分块不是从最小键值开始。
·RoutingTableRangeGap:路由表中同一集合的两个连续分块之间存在范围间隙。
·RoutingTableRangeOverlap:集合的路由表中包含两个分块键范围重叠的分块。
·ShardThinksCollectionIsUnsharded:分片认为分片集合未分片。
·ZonesRangeOverlap:同一集合存在重叠的分区。 

  

标签:检查,MongoDB,分块,checkMetadataConsistency,7.0,集群,分片,集合,路由表
From: https://www.cnblogs.com/abclife/p/17869495.html

相关文章

  • MongoDB 7.0 动态 WiredTiger tickets
    在WiredTiger存储引擎中,WiredTigertickets提供了并发控制机制。这些tickets分为读tickets和写tickets。当多个操作,比如读和写尝试并发访问数据库,WiredTiger使用tickets来确保这些操作不会冲突,从而保证数据的完整性和性能。WiredTiger中的"tickets"实际上是一种资源管理机制,用于限......
  • Mongodb安装篇+可视化工具篇
    下载MongoDB官网下载地址:DownloadMongoDBCommunityServer|MongoDB Version选择:稳定版4.4.2Mongo的版本分为稳定版和开发版,其中,稳定版是经过充分测试的版本,具有稳定性和可靠性;而开发版是未得到充分测试的版本,不适合初学者。所以我选择的稳定版本4.4.2/稳定版与开发版区......
  • Nginx健康检查【转】
    Nginx作为一款强大的反向代理服务和负载均衡服务,具有高并发、低消耗、配置简单等特点,而健康检查,则是为了保障nginx能够准确的转发到后端的可用服务。Nginx健康检查分为被动探测与主动探测两种,顾名思义,被动探测指nginx被动的发起探测;而主动探测则是在固定时间(可配置)主动发起探测,更......
  • .net中通过定时任务框架Quartz.NET来实现定期网络状态检查
     Quartz.NET是一个用于在.NET应用程序中实现作业调度和定时任务的开源框架。它允许你在应用程序中定义和调度作业,支持复杂的调度需求,例如定时、重复、错过执行、依赖性等。下面,我将通过一个简单的实例来详细描述Quartz.NET的功能、使用方法,并提供源代码。在这个示例中,我......
  • navicat链接oracle时报错,检查是否是oci.dll库不匹配的问题
     1:安装Oracle数据库,安装时类型选择共享服务器,不要选专享服务器。2:确定Oracle,Navicat,OracleClient的位数,确保你的oracle数据库的位数与navicat位数一致,即:32v32,64v643:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,在这个页面下载和......
  • 数据库选型:MySQL、PostgreSQL、MongoDB
    能够支撑实时业务的数据库,常见的数据库有:关系型数据库:MySQL、PostgreSQL,以及Oracle、DB2、MicrosoftSQLServer等非关系型数据库:MongoDB下面针对MySQL、PostgreSQL、MongoDB做对比分析。关于最受欢迎排行榜,该三类数据库处于前五位置,也是霸榜颇久。另外补充数据库市场份额如下......
  • [VMware]ESXI 7.0u3使用端口汇聚提升VMs网络吞吐率
    前言ESXI需要搭配千兆/万兆交换机才能实现高速通讯的效果。ESXI网络组成关键指标图示11.端口组portgroup释义:一组端口的组合2.虚拟交换机virtualswitchs释义:虚拟的2层、3层交换机,基于软件3.物理网卡physicalcards释义:物理网卡1G/10G以太网卡或者光端口网卡4.虚拟管理卡 VMke......
  • 临床检验检查信息系统(LIS系统源码)C/S结构的应用模式
     LIS系统实现了实验室人力资源管理、标本管理、日常事务管理、网络管理、检验数据管理(采集、传输、处理、输出、发布)、报表管理过程的自动化,使实验室的操作人员和管理者从繁杂的手工劳作中解放出来,提高了检验人员的工作效率和效益,降低了劳动成本和差错发生率。LIS采用C/S(Clien......
  • 【Python爬虫】Scrapy框架文件写入方式CSV,MYSQL,MongoDB_爬取新浪彩票双色球
    Spider代码爬取新浪彩票双色球页面数据,只爬取期号、红球、篮球classShuangseqiu11Spider(scrapy.Spider):name="shuangseqiu11"allowed_domains=["sina.com.cn"]start_urls=["https://view.lottery.sina.com.cn/lotto/pc_zst/index?lottoType=ssq&......
  • 使用 npm-check-updates 检查项目的 npm 依赖项是否有更新
    一、安装npm-check-updates:npminstall-gnpm-check-updates二、使用:在项目根目录运行以下命令,检查所有项目依赖项的最新版本:ncu执行结果如下:红色=主要升级青色=小幅升级绿色=补丁升级更新版本:ncu-u注意备份或者提交代码,确保包文件处于版本控制......