设为首页 收藏本站
查看: 905|回复: 0

[经验分享] MongoDB实战(6)命令行与进程

[复制链接]

尚未签到

发表于 2018-10-27 10:53:01 | 显示全部楼层 |阅读模式
  一、命令行
  MongoDB shell 不仅仅是一个交互式的 shell,它也支持执行指定 javascript文件,也支持执行
  指定的命令片断。
  有了这个特性,就可以将 MongoDB 与 linux shell 完美结合,完成大部分的日常管理和维护
  工作。
  1 通过 eval 参数执行指定语句
  一般我们这样执行一条命令:
MongoDB shell version: 2.4.7  
connecting to: test
  
> db.stu.count()
  
10
  
>
  实际上我们也可以这样:通过命令行 eval 参数直接执行语句:
DSC0000.png

  2 执行指定文件中的内容
  如果涉及到很多的操作后,才能得到结果,那么用 eval 的方式来做的话是不可能完成的,
  那么更灵活的执行指定文件的方式就派上用场了。例如我们仍然要查看 test 库 stu 表中的记
  录数:
cat stu.js  
var total = db.stu.count();
  
printjson('total count of stu is:'+ total);
  
printjson('----------------');
DSC0001.png

  大家可以看到最终得到stu表的记录数10,那么一些不必要的说明性文字我们要是不希望出
  现该怎么办呢?
DSC0002.png

  通过指定 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/*opid*/)  注意:
  不要 kill 内部发起的操作,比如说 replica set 发起的 sync 操作等



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627051-1-1.html 上篇帖子: MongoDB实战(5)数据管理和控制 下篇帖子: MongoDB实战(7)索引与性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表