MongoDB在线热备神器-createBackup
一、背景 作为NoSQL的优秀代表-mongodb数据库,在很多互联网公司得到广泛应用,不同的公司,mongodb数据量从几个GB到几个TB不等。无论数据量大小,都面临一个同样的问题:备份。 目前,常用的mongodb备份方案如下: 1)mongodump/mongoexport备份 这是mongodb官方提供的工具,属于逻辑备份,适合于数据量不大的情况(比……
MongoDB CPU利用率很高,怎么破?
经常有用户咨询:MongoDB CPU 利用率很高,都快跑满了,应该怎么办? 遇到这个问题,99.9999% 的可能性是「用户使用上不合理导致」,本文主要介绍从应用的角度如何排查 MongoDB CPU 利用率高的问题。 Step1: 分析数据库正在执行的请求 用户可以通过 Mongo Shell 连接,并执行 db.currentOp() 命令,能看到数……
MongoDB副本集write concern为majority的坑
故障现象 一个副本集下四个节点,一个primary,两个Secondary,一个arbiter,其中将一个Secondary关闭后,修改primary节点的密码,这时修改命令会卡住直到超时失败。 udb-aqmp5a:PRIMARY> db.changeUserPassword("root","123123") 2016……
MongoDB最佳实践-持续更新版
本文包括以下几个方面: – 安全措施 – 部署架构 – 系统优化 – 索引设计 – 备份监控 – 模式设计 – 程序配置 一、安全措施 1.1 为MongoDB集群启用认证鉴权 MongoDB服务器在默认安装下不启用鉴权。这意味着每个人都可以直接连接到mongod实例并执行任……
MongoDB复制集成员状态转换
MongoDB一共有10种状态,官方将其分为3大类,核心状态(Core States)为三种成员类型对应的属性(PRIMARY/SECONDARY/ARBITER),还有7种属性,被分为其他状态(Other States)和错误状态(Error States)两类。 核心状态(Core States) RPIMARY SECONDARY ARBITER 其他……
MongoDB复制集同步慢问题分析
案例一 一、问题背景 最近生产环境出现多次Primary写入QPS太高,导致Seconary的同步无法跟上的问题(Secondary上的最新oplog时间戳比Primary上最旧oplog时间戳小),使得Secondary变成RECOVERING状态,这时需要人工介入处理,向Secondary发送resync命令,让Secondary重新全量同步一次。 二、……
MongoDB 3.4复制集全量同步改进
一、MongoDB副本集数据同步方式 intial sync,可以理解为全量同步。 replication,追同步源的oplog,可以理解为增量同步。 下面会详细介绍MongoDB数据同步的实现原理。 initial sync Secondary节点当出现如下状况时,需要先进行全量同步。 oplog为空。 local.replset.minvalid集……
MongoDB Point in Time Recovery
在生产环境中,尽管我们尽力避免误操作,但是还是会遇到误操作或是其他情况的出现。这时候我们就需要进行Point in time recovery了。Mongodb的point in time recovery是基于oplog进行的,所以请确保oplog的size足够大,也请确保定时有冷备份(或是延时备份)。 理论上只要我们的mongodump做得足够频繁再结合……
MongoDB&MySQL关于NUMA架构CPU的相关问题
一、背景 MongoDB日志报警显示如下: WARNING: You are running on a NUMA machine. We suggest launching mongod like this to avoid performance problems: numactl --……
MongoDB配置文件选项介绍
MongoDB配置文件 Mongod在启动时可以通过-f指定一个配置文件(此配置文件中配置了必要的运行参数),或也可以通过mongos命令行选项启动。但是一般情况使用配置文件管理的mongod或mongos更容易,尤其是对于大型部署来说,因为可以向配置文件添加注释来解释服务器的设置。 如果使用安装包安装MongoDB默认就会使用一个配置文件(/etc/mon……
MongoDB WiredTiger存储引擎原理
MongoDB 3.2 把 WiredTiger 设置为了默认的存储引擎(之前版本使用 MMAPV1 存储引擎),最近通过阅读 WiredTiger 源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理清了 WiredTiger 的大致原理,并简单总结,不保证内容都是正确的,如有问题请指出,欢迎讨论交流。 按照 ……
MongoDB数据备份和恢复工具详解
一、MongoDB备份与恢复 不管是什么数据库,数据备份其实是一个基本操作。下面就说说mongodb如何备份数据,以及简单说一下mongodump在线备份是怎么保证数据的一致性的。 最简单的物理复制数据进行备份,不用多做解释,在创建MongoDB服务的时候,通过--dbpath指定目录就是存放mongdb数据库文件目录,我们可以通过复制这些文件实现数据库的冷……