千家信息网

MongoDB建索引时是否无法登录应用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,MongoDB建索引时是否无法登录应用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。背景介绍:Mongodb版本 3.0.2建索引和
千家信息网最后更新 2026年11月02日MongoDB建索引时是否无法登录应用

MongoDB建索引时是否无法登录应用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。


背景介绍:

Mongodb版本 3.0.2

建索引和collection和账号查询collection所在同一台服务器,不同库名上。

因使用的是mongodb3.0.2,之前了解到3.0是行级锁,于是dba在建该表索引时,并未加参数background:true。

查原因:

同事无法登录应用的时间点恰巧是该库有建索引的时间段。于是主要排查在索引上。后来通过复现问题,确认了该问题。

当主库开始建索引时,主库的读写是正常的。应用可以正常访问。但当主库索引建立完成,Secondary 拉取到一批 oplog 后,从库开始重放oplog时,此时就有一个特殊 Lock::ParallelBatchWriterMode 的锁,这个锁会阻塞所有的读请求。 这就解释了为什么在建索引之后的 几分钟,应用无法访问。

后查阅了资料:

  • 尽量避免脏读,等一批 oplog 重放完后,这批数据才允许用户读到。

  • 尽量保证同步性能,设想一下,如果重放 oplog 时,使用普通的锁,那么 oplog 的重放就需要跟正常的读写竞争锁资源,如果 Secondary 上有大量的读,那么势必会造成备同步逐步跟不上。


虽然3.0版本的读写锁没有对数据库造成阻塞,但不要忽略同步锁 Lock::ParallelBatchWriterMode的影响。

解决问题:

在数据库尽量空闲的状态下建索引;

在建索引时,最好还是加上 background:true。

关于MongoDB建索引时是否无法登录应用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

索引 问题 应用 登录 数据 同步 数据库 时间 更多 版本 帮助 解答 阻塞 不同 易行 普通 特殊 简单易行 内容 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 广州万易互联网科技有限公司 科技金融是不是互联网金融 安徽鑫晟辉互联网科技 友谊互联网络科技 互联网科技有限公司 翻译 四个字互联网科技公司取名 互联网科技博主是什么意思 互联网科技革命什么开始 洛阳昕诺飞互联网科技有限公司 开一家科技互联网公司需要多少钱 科技类公司包括互联网吗 乌鲁木齐新华智原互联网科技学校 长沙茂晟互联网科技有限公司 爱医互联网络科技 南通创西澳互联网科技有限公司 从那以后互联网科技有限公司 江苏互联网科技小贷 宁波跨境商互联网科技有限公司 六子台科技互联网展会 苏州互联网科技贷款公司 唐信互联网科技 大连 互联网科技公司做什么 中国互联网有什么科技含量 湖南诚度互联网科技有限公司 威龙国际互联网科技公司 2021世界互联网领先科技成果发布 艺电能源互联网科技有限公司招聘 互联网时代高科技布局 杭州科技互联网公司有哪些
0