MongoDB trouble shoot sharded clusters 翻译 dbapower 2017-07-06 17:16:06 博主文章分类:MongoDB 文章标签 trouble mongodb shard shoot 文章分类 服务器 MongoDB trouble shoot sharded clusters前言Part1:写在最前 在MongoDB sharding环境中,我们会遇到一些常见的错误,本文就MongoDB官网列出的错误进行翻译。Part2:整体环境 MongoDB 3.4.4实战Part1:某个应用或者Mongos宕机 如果每个应用程序服务器都有自己的mongos实例,其他应用程序服务器可以继续访问数据库。 此外,mongos实例不保持持久状态,并且可以重新启动(启动过程中为unavailable),而不会丢失任何状态或数据。 当一个mongos实例启动时,它会从configserver取回数据,并可以开始路由查询。Part2:在sharding集群中,其中一个mongod进程宕机 对于sharding环境,副本集提供了非常好的高可用能力。如果宕机的是主库,则副本集会选出一个新的主库。如果宕机的是从库,则副本集会让这台从库与主库断开连接,并且这台从库的数据不会被清空。在三个成员副本集中,即使该组的单个成员遇到灾难性故障,另外两个成员也有完整的数据副本。 经常去检查可用性是否中断以及是否有故障,如果系统出现不可恢复的故障,尽快替换掉出问题的服务器,并将一台新的成员加入到副本集中,以保证整个副本集集群的高可用性。Part3:sharding中的所有成员都unavailable 如果副本集分片的所有成员都不可用,则该分片中保留的所有数据都不可用。但是,所有其他分片上的数据将保持可用,并且可以将数据读取和写入其他分片。?但是,应用程序必须能够处理部分结果,此时DBA该调查中断的原因,并尝试尽快恢复分片。Part4:configserver副本集成员不可用 在版本3.2中更改:从MongoDB 3.2开始,分片集群的配置服务器可以部署为副本集。 副本集配置服务器必须运行WiredTiger存储引擎。 MongoDB 3.2不推荐使用配置服务器的三个镜像mongod实例。 副本集为配置服务器提供高可用性。 如果不可用的配置服务器是主服务器,则副本集将选择新的主服务器。 如果副本集配置服务器丢失其主服务器,并且无法选择主服务器,则集群的元数据将变为只读。 仍然可以从分片读取和写入数据,但是在primary可用之前无法进行块迁移或块分割。 如果所有配置数据库变得不可用,则集群无法使用。Part5:configserver数据过旧导致游标失败 当一个或多个mongos实例尚未从配置数据库更新其集群元数据的缓存时,查询返回以下警告:could not initialize cursor across all shards because : stale config detected 此警告不应传回应用程序。警告将重复,直到所有的mongos实例刷新其缓存。要强制实例刷新其缓存,请运行flushRouterConfig命令。Part6:分片键和集群可用性选择分片键时最重要的考虑因素是:1.确保MongoDB能够在分片间均匀分配数据2.衡量写操作可以遍布整个集群3.确保mongos可以将大多数查询隔离成特定的mongod。更多:1.每个分片应该是副本集,如果特定的mongod实例失败,则副本集成员将选择另一个作为主节点并继续操作。?但是,如果整个分片由于某种原因无法访问或失败,则该数据将不可用。2.如果分片键允许mongos将大多数操作分离成单个分片,则单个分片的失败只会使一些数据不可用。3.如果分片建分布的数据要求获取整个集群,那么这个分片不可用将导致整个集群不可用实质上,这也说明了选择合适的片键对于单个分片隔离查询操作的重要性Part7:configserver串错误 从MongoDB 3.2开始,configserver服务器可以部署为副本集。 分片集群的mongos实例必须指定相同的configserver服务器副本集名称,但可以指定副本集的不同成员的主机名和端口。 3.4开始,不再支持使用镜像mongod实例作为配置服务器(SCCC)。 在将分片集群升级到3.4之前,必须将配置服务器从SCCC转换为CSRS。 对于早期版本的MongoDB分片集群,configserver服务器使用三个镜像mongod实例的拓扑,分片集群中的mongos实例必须指定相同的configDB字符串。Part8:移动configerserver服务器时避免停机 使用CNAME来识别您的配置服务器到集群,以便可以重新命名和重新编号配置服务器,而不会停机。Part9:move Chunk 报错 chunk migration结束时,分片必须连接到configserver数据库才能更新群集元数据中的块的记录。 如果分片无法连接到configserver数据库,MongoDB会报告以下错误:ERROR: moveChunk commit failed: version is at <n>|<nn> instead of <N>|<NN>" and "ERROR: TERMINATING" 当发生这种情况时,shard副本集的primary 复制终止以保护数据一致性。 如果secondary成员可以访问配置数据库,则在选举为新主之后,分片上的数据将再次被访问。 赞 收藏 评论 分享 举报 上一篇:MySQL令人头疼的Aborted告警案例分析 下一篇:MongoDB Upgrade a Replica Set to 3.4 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Docker 离线安装 MongoDB 1 在线环境获取 Docker 镜像在有网络连接的环境中,使用以下命令下载 MongoDB 镜像并保存到本地:https://hub.docker.com/_/mongo#拉取镜像docker pull mongo:4.4.1#查看镜像docker images#删除镜像docker rmi mongo:4.4.12 导出 Docker 镜像在线环境中,使用 docker save 命令 docker 数据库 离线 mongodb mongodb 无线层级父子结构 MongoDB中的无线层级父子结构是指一种文档之间的关系模型,其中文档(或称为集合中的项)可以包含其他文档的引用,形成一个层级关系。在这种结构中,没有一个限制来规定一个文档可以有多少个子文档,因此被称为“无线”层级。在MongoDB中,这种父子关系通常用于组织数据,例如目录结构、组织架构、复杂的产品信息等。一个文档(父文档)可以有多个子文档,而每个子文档又可以有自己的子文档,这样就形成了一个层级树 平板电脑 插入数据 数据 mongodb批量导出导出示例 mongodb在数据迁移时,有时候只需要迁移部分集合中的部分数据库,此时可以用mongoexport和mongoimport来进行实施步骤1.收集需要迁移的数据这里需要请业务方评估、提供,最好是能提供带有索引的字段2.编辑批量导出脚本cat export_mongo.sh#!/bin/bash# MongoDB数据库和集合的名称DATABASE_NAME="<db_name>" 数据库 Database 批量导入 How to trouble shoot if there is no entityset available when creating a tile For example:In my case, when I first select F4 value help for “Entity Set”, I can see a series of CDS views listed, wh Fiori Fiori Deploy A MongoDB 4.0 Sharded Cluster 本文基于MongoDB4.0介绍如何搭建shard集群服务,环境如下表所示:1、创建相关目录在三个几点分别创建以下目录:[root@hdp06~]#mkdir-p/data/mongo/{config,router,shard}[root@hdp06~]#mkdir-p/data/mongo/config/{data,logs}[root@hdp06~]#mkdir-p/data/mongo/ro MongoDB Deploy mongodb3.4 Sharded cluster MongoDB目前3大核心优势:灵活模式、高可用性、可扩展性,通过json文档来实现灵活模式,通过复制集来保证高可用,通过Sharded cluster来保证可扩展性。 1.为什么需要Sharded cluster?当MongoDB复制集遇到下面的业务场景时,你就需要考虑使用Sharded cluster。1.存储容量需求超出单机磁盘容量2.活跃的数据集超出单机内存容量,导致很多请求都要 数据 数据库 复制集 SAP HANA Database Explorer 里的 SQL 语句如何排错 trouble shoot Troubleshoot SQL with SAP HANA Database Explorer 调试器可用于帮助查找过程、函数或匿名块中的问题。 以下步骤演示了如何使用调试器来调试过程。 选中某个存储过程,右键,选择 Open for debugging: 从调试器附加选项对话框中,确保选择了 S sql 数据库 调试器 右键 右键菜单 mongodb sharded cluster中的概念 mongodb的分片集群包含下面的几部分: shared:每个shared包含一系列的分片数据,每个shared可以部署为单个的replica set mongos:这个是个查询路 mongodb 数据 数据库 元数据 配置信息 搭建sharded cluster 1创建replica set的配置server 如果使用配置文件,设置 sharding.clusterRole to configsvr,replication.replSetName 为控制server的名称。 2连接到一个配 .net 复制集 初始化 配置文件 权限设置 Spark clusters # Spark Clusters: Introduction and Code Examples## Introduction to Spark ClustersAs data volumes continue to grow rapidly, traditional distributed computing frameworks are struggling to process a lua spark sed trouble processing 尝试在android开发中使用webservice,用的是axis,引入了几个jar包,看上去没有问题。不过在运行的时候控制台报错,无法运行,内容如下:trouble processing "javax/xml/messaging/Endpoint.class":Ill-advised or mistaken usage of a core class (java.* or jav... Android开发 double trouble double troubleFiled under: Execution plans,Performance,Tuning — Jonathan Lewis ent by changin... 数据库 php 开发工具 ide ci trouble shooting 1. grub/* missinglinux rescue chroot /mnt/sysp_w_picpathcd /bootgrub-install /dev/sda2 . boot/* missinglinux rescuechroot /mnt/sysp_w_picpathservice network restartrpm -ivh --force http:// 职场 休闲 Trouble Is a Friend Trouble will find you no mater where you go' oh oh. No Matter if you're fast no matter if you're slow' oh oh. The eye of the storm and the cry in the morn' oh oh. Your fine for a while but then 职场 control 休闲 Trouble Envoy clusters配置 环境说明 envoy:Front Proxy, 地址为 172.31.4.2 webserver01:后端服务,地址为 172.31.4.11 webserver01:后端服务,地址为 172.31.4.12 clusters 类型为STRICT_DNS envoy配置文件 查看代码 static_ docker 后端服务 .net Trouble shooting连接 Trouble shooting1、ping ip确保在网络层是能够通信的, eg:ping 192.168.0.105 2、tnsping oracle9ivm 10:表示ping oracle_service的服务10次保证到oracle的服务是通的3、client连接oracle(1)方式一:easy connectsqlplus scott/tiger@192.168.1.105 Oracle 职场 连接 休闲 [trouble shoot]atol和atoll 就终于的结果来看,事实上就是一个小的错误。 但定位错误的时间比較漫长了。。。 背景:出错的代码是 一段执行在 linux server上的程序,程序的主要功能是处理银行pos刷卡记录并做一些计算。最后汇总、格式化输出。 该公司是和银行打交道的。接的项目都是银行的。 来公司的第二天(第一天熟悉环境,啥 业务知识 linux vim 执行环境 c程序 mongodb shard Mongodb sharded 开启分片:1、先对数据库开启分片切换到admin数据库,执行db.runCommand({"enablesharding":"$db_name"})2、再对数据库中某集合开启分片切换到admin数据库,执行db.runCommand({"shardcollection":"$db_name.$collection_name","key":{"xxx":1}}) // 整数1表示范围分片(range mongodb shard mongodb 数据库 数据 字段 mongodb 没有clusters mongodb not in 1、NoSQL简介NoSQL(NoSQL = Not Only SQL),意即反SQL运动,指的是非关系型的数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入为什幺使用NoSQL :1、对数据库高并发读写。2、对海量数据的高效率存储和访问。3、对 mongodb 没有clusters mongodb 数据库 nosql User mongodb 通过mongodump来备份Sharded Cluste分片集群 1,mongodb所有组件官方文档地址:https://docs.mongodb.com/manual/reference/command/,所有的基础组件都在里面,包括备份恢复的mongodump、mongorestore,如01.png所示: 2,备份组件mongodump 概要mongodum mongodb linux .net 数据 sed