溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB命令行與進程是怎樣的

發(fā)布時間:2021-09-26 14:43:07 來源:億速云 閱讀:122 作者:柒染 欄目:MongoDB數(shù)據(jù)庫

本篇文章給大家分享的是有關(guān)MongoDB命令行與進程是怎樣的,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、命令行

MongoDB shell 不僅僅是一個交互式的 shell,它也支持執(zhí)行指定 javascript文件,也支持執(zhí)行
指定的命令片斷。
有了這個特性,就可以將 MongoDB 與 linux shell 完美結(jié)合,完成大部分的日常管理和維護
工作。
1 通過 eval 參數(shù)執(zhí)行指定語句
一般我們這樣執(zhí)行一條命令:

MongoDB shell version: 2.4.7
connecting to: test
> db.stu.count()
10
>

實際上我們也可以這樣:通過命令行 eval 參數(shù)直接執(zhí)行語句:
MongoDB命令行與進程是怎樣的

2 執(zhí)行指定文件中的內(nèi)容
如果涉及到很多的操作后,才能得到結(jié)果,那么用 eval 的方式來做的話是不可能完成的,
那么更靈活的執(zhí)行指定文件的方式就派上用場了。例如我們?nèi)匀灰榭?test 庫 stu 表中的記
錄數(shù):

cat stu.js
var total = db.stu.count();
printjson('total count of stu is:'+ total);
printjson('----------------');

MongoDB命令行與進程是怎樣的

大家可以看到最終得到stu表的記錄數(shù)10,那么一些不必要的說明性文字我們要是不希望出
現(xiàn)該怎么辦呢?
MongoDB命令行與進程是怎樣的

通過指定 quiet 參數(shù),即可以將一些登錄信息屏蔽掉,這樣可以讓結(jié)果更清晰。

二、進程控制

DBA 經(jīng)常要解決系統(tǒng)的一些查詢性能問題,此時一般的操作習(xí)慣是先查看有哪些進程,
然后將異常的進程殺掉,那么 MongoDB 是怎么樣處理的呢?

1 查看活動進程
查看活動進程,便于了解系統(tǒng)正在做什么,以便做下一步判斷

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: 如果操作類型是查詢的話,這里將顯示具體的查詢內(nèi)容
lockType: 鎖的類型,指明是讀鎖還是寫鎖

2 結(jié)束進程
如果某個異常是由于某個進程產(chǎn)生的,那么一般 DBA 都會毫不留情的殺掉這個罪魁禍首的
進程,下面將是這操作

> db.killOp(1234/*opid*/)

注意:
不要 kill 內(nèi)部發(fā)起的操作,比如說 replica set 發(fā)起的 sync 操作等

以上就是MongoDB命令行與進程是怎樣的,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI