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()是从执行命令成员本身的角度得出的,由于网路等故障,这份报告可能不准确或者有些过时。
 
 
 
 
原文地址:https://www.cnblogs.com/bryant-dai/p/7904681.html