您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關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/*opid*/)
注意:
不要 kill 內部發起的操作,比如說 replica set 發起的 sync 操作等
以上就是MongoDB命令行與進程是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。