MongoDB下rs.status()命令


 

 

 最近經常遇到數據庫卡頓,連接異常問題,需要鏈接到數據庫內,常用到rs.status()復制集狀態查詢命令,故借鑒前輩的文章,在此記錄下來,供后續查看,此處有官人的鏈接和ID,敬請關注下該博主,謝謝

   本文為   wei-xh   的博文,請多多關注博主,鏈接http://blog.itpub.net/22034023/viewspace-1074651/

 

{

        "set" : "wxh",
        "date" : ISODate("2014-01-23T09:34:23Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "wxlab31:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",          #  stateStr用戶描述服務器狀態的字符串。有SECONDARY,PRIMARY,RECOVERING等
                        "uptime" : 30060,                           #  uptime 從成員可到達一直到現在經歷的時間,單位是秒。
                        "optime" : Timestamp(1390450194, 3),        #  optimeDate 每個成員oplog最后一次操作發生的時間,這個時間是心跳報上來的,因此可能會存在延
                        "optimeDate" : ISODate("2014-01-23T04:09:54Z"),
                        "lastHeartbeat" : ISODate("2014-01-23T09:34:21Z"),    #  lastHeartbeat 當前服務器最后一次收到其他成員心跳的時間,如果網絡故障等可能這個時間會大於2秒
                        "lastHeartbeatRecv" : ISODate("2014-01-23T09:34:21Z"),
                        "pingMs" : 0,                #  pinMs 心跳從當前服務器達到某個成員所花費的平均時間
                        "syncingTo" : "wxlab31:27018"        # syncingTo表示當前服務器從哪個節點在做同步
                },
                {
                        "_id" : 1,
                        "name" : "wxlab31:27018",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY", 
                        "uptime" : 30067,
                        "optime" : Timestamp(1390450194, 3),
                        "optimeDate" : ISODate("2014-01-23T04:09:54Z"),
                        "self" : true            # self 這個信息出現在執行rs.status( )函數的成員信息中
           },
                {
                        "_id" : 2,
                        "name" : "wxlab31:27019",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 30066,            
                        "optime" : Timestamp(1390450194, 3),   
                        "optimeDate" : ISODate("2014-01-23T04:09:54Z"),
                        "lastHeartbeat" : ISODate("2014-01-23T09:34:22Z"),   
                        "lastHeartbeatRecv" : ISODate("2014-01-23T09:34:21Z"),
                        "pingMs" : 0, 
                        "syncingTo" : "wxlab31:27018"   
                },
                {
                        "_id" : 3,
                        "name" : "wxlab31:27020",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 30066,
                        "optime" : Timestamp(1390450194, 3),
                        "optimeDate" : ISODate("2014-01-23T04:09:54Z"),
                        "lastHeartbeat" : ISODate("2014-01-23T09:34:21Z"),
                        "lastHeartbeatRecv" : ISODate("2014-01-23T09:34:22Z"),
                        "pingMs" : 0,
                        "syncingTo" : "wxlab31:27018"
                }
        ],
        "ok" : 1
}

字段解釋:

  • self 這個信息出現在執行rs.status()函數的成員信息中
  • stateStr用戶描述服務器狀態的字符串。有SECONDARY,PRIMARY,RECOVERING等
  • uptime 從成員可到達一直到現在經歷的時間,單位是秒。
  • optimeDate 每個成員oplog最后一次操作發生的時間,這個時間是心跳報上來的,因此可能會存在延遲
  • lastHeartbeat 當前服務器最后一次收到其他成員心跳的時間,如果網絡故障等可能這個時間會大於2秒
  • pinMs 心跳從當前服務器達到某個成員所花費的平均時間
  • errmsg 成員在心跳請求中返回的狀態信息,通過是一些狀態信息,不全是錯誤信息。
state和stateStr是重復的,都表示成員狀態,只是state是內部的叫法。
health表示是否服務器可達,可達是1,不可達是0
optime與optimeDate表達的信息也是一樣的,只是表示的方式不同,一個是用新紀元開始的毫秒數表示的,一個是用一種更容易閱讀的方式表示。
syncingTo表示當前服務器從哪個節點在做同步。
由於rs.status()是從執行命令成員本身的角度得出的,由於網路等故障,這份報告可能不准確或者有些過時。
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM