博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB当前操作db.currentOp()示例
阅读量:6910 次
发布时间:2019-06-27

本文共 2003 字,大约阅读时间需要 6 分钟。

MongoDB当前操作db.currentOp()示例

 

停止某个操作:

$ mongo --port 17380  

MongoDB shell version: 2.4.5    
connecting to: 127.0.0.1:17380/test    
mongos> db.currentOp()    
{ "inprog" : [ ...] }

mongos> db.killOp("shard0001:163415563")

批量停止:

db.currentOp().inprog.forEach(function(item){db.killOp(item.opid)})

当查询超过1000秒的,停止:

db.currentOp().inprog.forEach(function(item){if(item.secs_running > 1000 )db.killOp(item.opid)})

停止某个数据源的查询:

db.currentOp().inprog.forEach(function(item){if(item.ns == "cswuyg.cswuyg")db.killOp(item.opid)})

把所有在等待锁的操作显示出来:

db.currentOp().inprog.forEach(function(item){if(item.waitingForLock)print(JSON.stringify(item))})

把处于等待中的分片显示出来:

db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){print(item.opid.substr(0,9));print(item.op);}})

把非等待的分片显示出来:

db.currentOp().inprog.forEach(function(item){if(!item.waitingForLock){var lock_info = item["opid"];print(lock_info.substr(0,9));print(item["op"]);}})

查找所有的查询任务:

db.currentOp().inprog.forEach(function(item){if(item.op=="query"){print(item.opid);}})

查找所有的非查询任务:

db.currentOp().inprog.forEach(function(item){if(item.op!="query"){print(item.opid);}})

查找所有的操作:

db.currentOp().inprog.forEach(function(item){print(item.op, item.opid);});

 

常用js脚本,可直接复制到mongo-shell下使用:

 

显示当前所有的任务状态:

print("##########");db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){var lock_info = item["opid"];print("waiting:",lock_info,item.op,item.ns);}});print("----");db.currentOp().inprog.forEach(function(item){if(!item.waitingForLock){var lock_info = item["opid"];print("doing",lock_info,item.op,item.ns);}});print("##########");

 

杀掉某些特定任务:

(1)

db.currentOp().inprog.forEach(function(item){if(item.waitingForLock){var lock_info = item["opid"];if(item.op=="query" && item.secs_running >60 && item.ns=="cswuyg.cswuyg"){db.killOp(item.opid)}}})

(2)

db.currentOp().inprog.forEach(function(item) {    var lock_info = item["opid"];     if (item.op == "query" && item.secs_running > 1000) {      print("kill", item.opid);      db.killOp(item.opid)     }    })

转载地址:http://tsncl.baihongyu.com/

你可能感兴趣的文章
【linux】——linux中各个目录的意义
查看>>
程序人生--2005年(30)
查看>>
开源项目之Android StandOut(浮动窗口)
查看>>
分享:树状分类结构,数据库构建(预排序历遍算法)
查看>>
IIS命令
查看>>
学习 easyui 之三:panel 分析
查看>>
BSTR、char*和CString转换
查看>>
盘点影视剧中的那些经典“清流男”
查看>>
CDC,CPaintDC,CClientDC,CWindowDC
查看>>
信号退出【Linux学习笔记】kill及kill -9的用法及如何实现进程的优雅退出
查看>>
搜索引擎是怎么删除重复网页的
查看>>
Objective-C规范注释心得——同时兼容appledoc(docset、html)与doxygen(html、pdf)的文档生成...
查看>>
ARCGIS RUNTIME FOR IOS总结(六)
查看>>
批量scp脚本——从多台机器拷贝文件
查看>>
Oracle 11g安装图文攻略
查看>>
用VBA宏从一个工作薄复制内容到另一个工作薄
查看>>
Android架构分析之使用自定义硬件抽象层(HAL)模块
查看>>
VC6.0启动File-open和Project-add file to project崩溃的解决方法
查看>>
死锁线程探讨Java中的死锁现象
查看>>
Java HashMap的死循环 以及 LRUCache的正确实现
查看>>