一个数组查询引发的坑
背景 中午12点半,接到了线上MongoDB 数据库异常的告警通报: “CPU不间断飙升到百分百,业务也相应出现了抖动现象。” 通过排查数据库主节点的日志,发现了这样的一个慢语句: 2019-03-07T10:56:43.470+0000 ...
背景 中午12点半,接到了线上MongoDB 数据库异常的告警通报: “CPU不间断飙升到百分百,业务也相应出现了抖动现象。” 通过排查数据库主节点的日志,发现了这样的一个慢语句: 2019-03-07T10:56:43.470+0000 ...
MongoDB 4.0 Change Streams增强新特性,我们可以跟踪单个集合Colletion、数据库或部署集群的数据库和集合中的所有变化。
MongoDB帮助我们用短短90天内交付了客户360项目。对大都会人寿,这是真正突破,保险业的开创性突破。它树立了我们所期望的公司榜样。——John Bungert,大都会人寿高级架构师 2011 年,保险巨头大都会人寿 (MetLife)...
MongoDB 4.0增加了一个能力,在副本处理写操作的同时可以由从节点(secondary)读取数据。为了理解这个的重要性,让我们看看4.0版本之前从节点是如何处理的。 背景 从一开始,MongoDB就是这样设计的:当主节点上有一系列的写...
前段时间笔者的客户遇到了一个主从延迟导致的业务故障,故障的原因本来是较为简单易查的,但是由于客户环境的安全、保密性要求,监控和指标只能间接获知,信息比较片段化与迟缓。 不过这反而致使整个排查过程变得更加有分享和借鉴价值。在这里分享给大家希望...
背景 某运营商搭建了一套 MongoDB 集群,承载了大大小小的几十个非计费类应用,1亿左右的用户量,随着访问量的增加,业务繁忙时期偶尔出现连接拒绝的错误。 分析 为了搞清楚原因,先从mongo访问数据库的模式说起,如下图: 我们发现客户端...
MongoDB 使用 Change Stream 打造平滑迁移方案
不知道大家在使用MongoDB的时候有没有遇到突然想要一个集群但是手边又没有的时候?特别是我已经升级到4.0了,突然想要一个3.2的集群怎么办?然后去下载,改配置文件,启动,修改复制集,添加分片,一番折腾弄好了连自己想干什么都忘了。 本文...
之前写过一篇MongoDB 无法启动,如何恢复数据的文章,介绍了几种从无法启动的 MongoDB 节点恢复数据的方法,主要包括: 如果配置了副本集多节点,则从其他节点恢复(强烈建议重要的数据至少要存2份) 从最近的备份集恢复,一般重要的生产...
片键选择对于Sharded Cluster有非常重大的意义,但在实际接触的案例中往往很多人选择了错误的片键,导致集群性能低下。其实在官方文档中已经对Shard Key有非常详尽的介绍,所有的注意事项和选择原则都十分清楚。所以在阅读本文之前请...