故障现象
mongodb重启后,等了几十分钟还一直没启动完成,单节点副本集,状态一直处于startup

原因分析
查看mongod的错误日志,发现一直处于building index,但根据之前的经验,只有在重做secondary节点的时候才会经常处于building index状态,而这个db是primary节点,于是详细查看了关于这个building index的全部信息

2017-01-05T17:24:59.473+0800 [IndexRebuilder] found 1 index(es) that wasn't finished before shutdown
2017-01-05T17:24:59.473+0800 [IndexRebuilder] found 1 interrupted index build(s) on aso.app_version_info_chn1
2017-01-05T17:24:59.473+0800 [IndexRebuilder] note: restart the server with --noIndexBuildRetry to skip index rebuilds
2017-01-05T17:24:59.473+0800 [IndexRebuilder] going to rebuild: { v: 1, unique: true, key: { _fts: "text", _ftsx: 1 }, name: "$**_text", ns: "aso.app_version_info_chn1", weights: { $**: 1 }, default_language: "english", language_override: "language", textIndexVersion: 2 }
2017-01-05T17:24:59.474+0800 [IndexRebuilder] build index on: aso.app_version_info_chn1 properties: { v: 1, unique: true, key: { _fts: "text", _ftsx: 1 }, name: "$**_text", ns: "aso.app_version_info_chn1", weights: { $**: 1 }, default_language: "english", language_override: "language", textIndexVersion: 2 }
2017-01-05T17:24:59.474+0800 [IndexRebuilder]   building index using bulk method

根据错误日志的提示信息,看样子原因是这样的:在db关闭之前,有一二较大的索引建立的操作没有完成,db就直接shutdown了,等db再次启动的时候,mongo默认会将这个index重建好,重建期间处于startup状态

处理方法
由于不清楚building index到底要持续多久,根据错误日志提示,重启mongod时加上--noIndexBuildRetry参数来跳过索引重建。等启动完成后,再评估是否需要建立这个index。
---------------------
作者:胡儿胡儿
来源:CSDN
原文:https://blog.csdn.net/cug_jiang126com/article/details/54097365
版权声明:本文为博主原创文章,转载请附上博文链接!

mongodb启动很慢的更多相关文章

  1. MongoDB启动配置等

    目录: 一.mongoDB 启动配置 二.导出,导入,运行时备份 三.Fsync锁,数据修复 四.用户管理,安全认证 一.启动项 mongod --help C:\Windows\system32&g ...

  2. Mongodb启动命令mongod参数说明

    Mongodb启动命令mongod参数说明 mongod的主要参数有: 基本配置 ----------------------------------------------------------- ...

  3. myeclipse配置下tomcat debug启动很无比慢

    myeclipse配置下tomcat debug启动很无比慢,而run启动很快今天照常使用MyEclipse 6.5 Blue Edition进行开发,但是却遇到一个怪问题.在MyEclipse环境下 ...

  4. mongoDB启动参数备忘

    本文转载 Mongodb启动命令mongod参数说明   mongod的主要参数有:    基本配置   ----------------------------------------------- ...

  5. 安装MongoDB启动时报错‘发生系统错误2’的解决办法

    安装数据库mongodb启动时报"发生系统错误2". 这个问题是如果你之前已经装过一次,并且两次安装目录不同,就绝对会碰到的,因为你之前安装的路径已经在注册表中生成了,并没有随着你 ...

  6. 【mongodb系统学习之五】mongodb启动最常用参数

    五.mongodb启动时其他常用参数的使用(都是选用): 1).--logappend,指定日志的写入方式为追加,强烈建议使用: 2).--port,指定mongodb的端口号,当不使用这个参数的时候 ...

  7. MongoDB启动报错 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 【转】

    之前MongoDB启动的时候是蛮正常的,不知道后来启动报错了,就把粘贴出来查询了.最后才知道是由于自己不正常的关闭导致的这个情况. --摘录:MongoDB非正常关闭后修复记录 mongod没有后台执 ...

  8. Shadow Copying导致ASP.NET应用启动很慢的解决办法

    What's Shadow Copying? 我们安装一个应用程序并启动后,我们是无法更新应用程序安装目录中程序集文件的.如果强制替换会提示文件正在使用,如下图所示. 那你可能会问,为什么会无法更新呢 ...

  9. Linux服务器tomcat启动很慢

    Linux服务器tomcat启动很慢 步骤: 一:找到 java 位置 whereis java 输出内容(部分):/usr/lib/java  ...... 二:进入到 lib 目录 cd /usr ...

随机推荐

  1. images

  2. SpringBoot+MyBatis+Mysql 详细示例

    SpringBoot与MyBatis整合,底层数据库为mysql的使用示例  项目下载链接:https://github.com/DFX339/bootdemo.git   新建maven项目,web ...

  3. docker 部署 flask(三)高级编写及生成镜像,安装requirements.txt

    简介: 上一篇,我写了如何使用别人的docker基础镜像,生成我们的docker镜像. 也就最基本的flask,没有别的库(包)支持.连数据库支持都没有. 也就让大家了解一下怎么生成镜像而已. 本篇介 ...

  4. 打开和写入word文档

    一. 使用win32读取word内容 # -*- coding: utf-8 -*- from win32com import client as wc def readDocx2(): word = ...

  5. UUID+随机数

    import java.util.Random; import java.util.UUID; public class UUIDUtils { public static String getUUI ...

  6. 解决无法创建 JPA 工程的问题

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7703803.html ------------------------------------ ...

  7. 2018ICPC青岛 E - Plants vs. Zombies (二分+模拟)

    ZOJ - 4062 题意:有n个植物排成一排,按顺序植物的编号是1-n,每个植物都有一个生长速率,有一个机器人,机器人可以走m步,每走一步,这个机器人就会浇一次水,浇一次水那个植物就会长 自身的生长 ...

  8. C#正则表达式MatchCollection类

    认识MatchCollection 类 表示通过以迭代方式将正则表达式模式应用于输入字符串所找到的成功匹配的集合. 命名空间:  System.Text.RegularExpressions 属性:C ...

  9. python-django优缺点

    [Django]是利用[Python]语言从事[Web]开发的首选框架.如果你以后想从事[python web]开发工作,就必需了解其优缺点.这些都可能会是你将来的面试题哦. [Django]的优点 ...

  10. python基础4文件操作

    在磁盘上读取文件的 功能都是由操作系统来实现的,不允许普通的程序直接操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据( ...