Mongo终止构建索引

MongoDB在执行createIndex或reIndex方法在创建或重构索引时,将阻塞对数据集合的操作,更为严重的是,对整个数据库都有影响,直到索引创建或重构完成,方可操作。

如在其过程中意外中断,再次重启mongodb时会发现,无法启动,查看monggo日志发现:

如图,启动不起来是因为mongo在后台创建索引未曾执行完毕。针对此问题,可以使用storage.indexBuildRetry or --noIndexBuildRetry跳过索引创建来启动。

如:我采用的是mongo集群,日志中只要是分片10中表在创建索引导致分片10无法顺利启动,最简单的办法就是在启动分片10时增加 --noIndexBuildRetry跳过索引创建来启动:

numactl --interleave=all mongod -f /data4/mongodb7010/conf/shard7010.conf --noIndexBuildRetry

如下图:

启动完成后,进入相应数据库连接主节点,定位创建(重构)索引的进程:

db.currentOp()

然后执行:

db.killOp(<opid>) 

终止索引创建。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值