MongoDB管理命令收集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB管理命令收集相关的知识,希望对你有一定的参考价值。
[TOC]
慢查询
// 开启2000毫秒以上的慢查询记录
db.setProfilingLevel(1,2000)
// 查看最近5条慢查询
show profile
// 按照慢查询执行时间倒序查询
db.system.profile.find().sort({‘millis‘:-1}).pretty
// 查看查询计划
db.Sync_Log.find({"$and":[{"mbid" :{$eq 7542163}},{‘t‘:{$gte:2333}}]}).explain()
// 关闭慢查询记录
db.setProfilingLevel(0)
任务管理
停止超过一定时间的查询
db.currentOp().inprog.forEach(
function(item){
if (item.secs_running > 1000 )
db.killOp(item.opid);
}
)
停止对某个表的查询
db.currentOp().inprog.forEach(
function(item){
if (item.ns == "dbA.tbA")
db.killOp(item.opid)
}
)
找出某种类型的任务
db.currentOp().inprog.forEach(
function(item){
if (item.op=="query")
{print(item.opid,item.op);}
}
)
另一种思路的任务查看
db.currentOp(
{$and :[
{ns:{$ne:‘local.oplog.rs‘}},
{ns:{$ne:‘local.replset.minvalid‘}},
{ns:{$ne:‘admin.$cmd‘}},
{ns:{$ne:‘‘}}]
}
)
副本集管理
修改主机名
cfg = rs.conf()
cfg.members[0].host = "xxxhost: 20000"
cfg.members[1].host = "yyyhost: 20001"
cfg.members[2].host = "zzzhost: 20002"
rs.reconfig(cfg)
分片管理
修改primary shard
MongoDB 分片集群创建数据库时,系统会挑一个可用空量最大的节点作为其默认节点。
db.runCommand({"movePrimary": "test", "to": "shard0000"})
手动迁移集合的数据块
用途:在需要下线某个节点时,预先迁移出数据
sh.moveChunk("dbA.collectionB", { collC: "53187" }, "shard0019")
以上是关于MongoDB管理命令收集的主要内容,如果未能解决你的问题,请参考以下文章
精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解