很久没来更新博客,自感是一个只会搬砖的劳工,总搞些MySQL相关的数据库实在无聊,且时不时遇到些不讲道理的Dev吧,真的是心累至极,有种想回头我也去干开发的冲动,当个需求者有话语权要风得风,要雨得雨多帅。以上纯属个人小目标,万一哪天实现了呢,岂不美滋滋,从此走上人生巅峰,顿觉做技术不再那么枯燥了。

最近接触了另一种当下比较流行的MongoDB数据库,不觉又get了一项新技能,可以与人“侃侃而谈”了。谈点儿个人感受吧,MongoDB是一个非常不错的文档型数据库,一些觉得MySQL数据库存储json文档维护成本高可以放到MongoDB;不借助其他第三方工具实现高可用和分片功能,这类似与MySQL的MHA、MMM,实现了高可用的故障切换,保障了服务可用;另一大特性分片可以实现数据的分部均衡,大数据量的时候通过路由实现了服务器的负载均衡,这个功能实现了网易前段时间开源的Cetus的功能,但自带的工具兼容性会好一些,维护起来也方便。

我刚接触MongoDB也觉得这种数据库开发者很仁义,不仅提供了一个新型的场景数据库,还想到了服务高可用,甚至延伸到了另一个阶段数据量上来了,服务器单集群或者机器性能不足的问题。可是真当遇到了,你真的会以为高可用就能高可用了吗?如果你告诉我MongoDB自带的投票机制可以,那待我分享下最近的两次惨痛经历,你还会相信绝对吗?

MongoDB的OOM问题:MongoDB是最近才交付给DB运维的数据库,之前一直由op进行维护,可以讲公司以及集团内部熟悉MongoDB的人几乎没有,so配置文件很粗糙,对于内存没有做限制。终于有一天一个复用的MongoDB集群不堪忍受爆发了,大致是datavisor的任务多个进程,单进程占用了12G内存,MongoDB也没有做内存限制,半夜3点、6点分别出现OOM宕机事故。可气的是半夜宕机呀,谁能忍受。宕了一台也就算了,集群另一台也因为同样的问题GG了,然后服务不可用。告警出现disaster级别,领导各种指导,一顿忙活(限制MongoDB内存,让出资源给datavisor使用)终于解决了这个连续两天集群宕机的故障。(MongoDB是一种较吃内存的数据,按照官方文档的意思大概是物理内存的一半减少一个G就是MongoDB占用的内存,但是呢经过我的test发现事实并不是这样)。

不要问我为什么MongoDB的集群OOM问题能查两天,出现三次集群宕机的低级事故,下面谈下当今最火的数据仓库给各位DBA带来的暴击伤害。

MongoDB的网络限速处理:如果你的公司恰好有数据仓库部门,业务数据量大或者抽取策略不合理,那么我觉得你有必要考虑下MongoDB的网络限速,否则容易将核心业务交换机流量打满,单个抽取的服务器网卡流量打满,被抽取的MongoDB机器出现故障切换后二次没得切换出现集群崩塌的局面。

以上两点浅尝辄止,简短分析下,不详细赘述了,说多了又该讲讲那些我anscript批量动网卡承担的风险,加班加点排查问题,差点儿一觉醒来锅从天降。总归这些还是值得,让我觉得高可用有时候并不能真的高可用,出现崩塌的时候又该何去何从,这是个问题。

你以为的MongoDB副本集的高可用是真的高可用了吗?的更多相关文章

  1. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  2. mongodb副本集高可用架构

    一.简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点. Mongodb Driver(客户端)的所有数据都写入Primary,Sec ...

  3. MongoDB 副本集的原理、搭建、应用

    概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...

  4. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

  5. MongoDB副本集搭建及备份恢复

    一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...

  6. java程序连接MongoDB副本集测试

    三个节点有一个节点挂掉也不会影响应用程序客户端对整个副本集的读写! public class TestMongoDBReplSet { public static void main(String[] ...

  7. MongoDB副本集的搭建

    副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...

  8. mongodb副本集搭建过程中的问题和解决技巧

    在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...

  9. 十分钟搞定mongodb副本集

    mongodb副本集配置 最近项目中用到了mongodb,由于是用mongodb来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找mongodb集群的一些资料,下面是对最近做的一个小 ...

  10. mongodb副本集原理及部署记录

    工作原理 1.副本集之间的复制是通过oplog日志现实的.备份节点通过查询这个集合就可以知道需要进行复制的操作 2.oplog是节点中local库中的一个固定的集合,在默认情况下oplog初始化大小为 ...

随机推荐

  1. Unity Bolt插件 基本使用

    1.Bolt的安装和配置 导入插件后可以看到 设置命名方式,左侧:普通人,右侧: 程序员 设置变量类型(可以手动添加自己自定义的类型) 然后点击生成,等待bolt编译生成. 2.创建一个流程并使用 如 ...

  2. Centos6下使用yum安装MariaDB

    1)增加mariaDB的yum源 1 2 3 4 5 6 7 8 9 [root@centos6-test08 ~]# cd /etc/yum.repos.d/ [root@centos6-test0 ...

  3. Python函数参数&time、OS、json模块

    ##可变参数 PORT = 3306 #常量 def mysql(host,user,password,port,charset,sql,db): print('连接mysql') # mysql(' ...

  4. linux crontab 执行mysqldump全局备份为空

    今天遇到个问题,在定时备份时 去查看备份文件,发现大小竟然为0,执行 备份sh文件备份, 备份的sql文件大小正常.试了几种办法. 最终解决办法: 问题原因: 因为我设置的环境变量 就直接在sh中 使 ...

  5. VS2017Release+x64失败,LNK1104,无法打开文件"msvcprt.lib"

    采用VS2017+Qt5.10联合开发环境建立开发,将Qt的库包含到VS中使用VS2017的Debug+x64模式调试程序,通过并出现对应的EXE应用程序! 但是转换到Release+x64模式出现问 ...

  6. linux下SS 网络命令详解

    ss命令用来显示处于活动状态的套接字信息. ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容. 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比n ...

  7. Luogu P1381油滴扩展

    传送门 数据范围给的很小啊,n >= 0 && n <= 7,所以给了DFS生存的空间. 对于每一个油滴,可以说在它下一个油滴放置之前,当前的这个油滴的半径并不确定(但是对 ...

  8. ubuntu Anaconda install

    在文件目录下执行: bash Anaconda3-4.2.0-Linux-x86_64.sh 根据提示输入回车 这里需要查看注册信息,回车浏览完信息即可 阅读完注册信息后,这里输入“yes” 回车即可 ...

  9. MySql的编译安装

    一 前期准备 1 cmake包,要求2.8以上版本 https://cmake.org/download/ 2 boost库包 boost Boost库是一个可移植.提供源代码的C++库,作为标准库的 ...

  10. Hadoop 数据去重

    数据去重这个实例主要是为了读者掌握并利用并行化思想对数据进行有意义的筛选.统计大数据集上的数据种类个数.从网站日志中计算访问等这些看似庞杂的任务都会涉及数据去重.下面就进入这个实例的MapReduce ...