MongoDB命令行与进程是怎样的
本篇文章给大家分享的是有关MongoDB命令行与进程是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
一、命令行
MongoDB shell 不仅仅是一个交互式的 shell,它也支持执行指定 javascript文件,也支持执行
指定的命令片断。
有了这个特性,就可以将 MongoDB 与 linux shell 完美结合,完成大部分的日常管理和维护
工作。
1 通过 eval 参数执行指定语句
一般我们这样执行一条命令:
MongoDB shell version: 2.4.7
connecting to: test
> db.stu.count()
10
>
实际上我们也可以这样:通过命令行 eval 参数直接执行语句:
2 执行指定文件中的内容
如果涉及到很多的操作后,才能得到结果,那么用 eval 的方式来做的话是不可能完成的,
那么更灵活的执行指定文件的方式就派上用场了。例如我们仍然要查看 test 库 stu 表中的记
录数:
cat stu.js
var total = db.stu.count();
printjson('total count of stu is:'+ total);
printjson('----------------');
大家可以看到最终得到stu表的记录数10,那么一些不必要的说明性文字我们要是不希望出
现该怎么办呢?
通过指定 quiet 参数,即可以将一些登录信息屏蔽掉,这样可以让结果更清晰。
二、进程控制
DBA 经常要解决系统的一些查询性能问题,此时一般的操作习惯是先查看有哪些进程,
然后将异常的进程杀掉,那么 MongoDB 是怎么样处理的呢?
1 查看活动进程
查看活动进程,便于了解系统正在做什么,以便做下一步判断
db.currentOp()
{
"inprog" : [
{
"opid" : 62475494,
"active" : true,
"secs_running" : 2,
"op" : "getmore",
"ns" : "local.oplog.rs",
"query" : {
},
"client" : "192.168.129.21:33065",
"desc" : "conn1938595",
"threadId" : "0x40458940",
"connectionId" : 1938595,
"waitingForLock" : false,
"numYields" : 0,
"lockStats" : {
"timeLockedMicros" : {
"r" : NumberLong(83),
"w" : NumberLong(0)
},
"timeAcquiringMicros" : {
"r" : NumberLong(8),
"w" : NumberLong(0)
}
}
}
]
}
字段说明:
Opid: 操作进程号
Op: 操作类型(查询,更新等)
Ns: 命名空间, 指操作的是哪个对象
Query: 如果操作类型是查询的话,这里将显示具体的查询内容
lockType: 锁的类型,指明是读锁还是写锁
2 结束进程
如果某个异常是由于某个进程产生的,那么一般 DBA 都会毫不留情的杀掉这个罪魁祸首的
进程,下面将是这操作
> db.killOp(1234)
注意:
不要 kill 内部发起的操作,比如说 replica set 发起的 sync 操作等
以上就是MongoDB命令行与进程是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341