跟传统数据库相同,为了提升查询效率,需要对集合增加适合的索引,同样需要移除冗余、没有被使用的索引,在MongoDB数据库日常运维过程如何规避创建与删除索引对系统的影响?...4.2之前版本中后台创建索引变成前台
4.2版本创建索引造成DB几分钟不能写
3.6版本创建索引后删除索引造成备库无法登录
【4.2之前版本后台创建索引变成前台】
MongoDB 4.2之前版本分为前台与后台...)
根据时间点去查找日志,发现有执行命令{profile:-1},这个命令对应DB级别锁是R.由此可以判断是这个命令导致创建索引所在的DB下所有写入都被阻塞的,锁队列类似-->IX-->R-->IX.....
1、【触发过程】
对大的集合使用后台创建索引后,然后又删除这个相同索引,然后触发触发Secondary阻塞所有读的情况,读写分离业务受到影响,不管是客户端还是shell命令行,以下shell命令行登录....
3、[如何解决问题]
1、【等待备库创建完成索引后在主库删除索引】
4.2版本之前使用后台完成创建索引后,等待所有从库创建后,再执行删除索引.
2、【升级版本到4.2版本】