mongodb – 如何检查中继现在或不同步

栏目: 数据库 · 发布时间: 6年前

内容简介:有三个成员(小学,中学,中学)的副本.假设一个次要的一个下降了一天,返回后回到副本我如何找到,是否同步了?我在测试环境中做到这一点,但是找不到rs.status()和db.printReplicationInfo()的有用数据.

有三个成员(小学,中学,中学)的副本.

假设一个次要的一个下降了一天,返回后回到副本我如何找到,是否同步了?

我在测试环境中做到这一点,但是找不到rs.status()和db.printReplicationInfo()的有用数据.

db.printReplicationInfo()中存在“日志长度开始到结束”.但是默认情况下这是很大的时间,次要的时候会增加.

注意:请务必检查 arcseldon 提供的 the answer

用户友好的等效物.

可以使用rs.status()的输出.如果辅助节点已同步,并且未使用slaveDelay选项创建,则辅助节点的optime和optimeDate应等于或关闭(如果有当前操作)为主节点.在这种情况下,stateStr应等于SECONDARY.所以如果辅助被同步,你应该看到类似的输出(为清楚起见,一个成员被从输出中删除):

{
    "set" : "rs0",
    "date" : ISODate("2013-11-08T14:58:49Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "hostname:27001",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 155,
            "optime" : Timestamp(1383915748, 1),
            "optimeDate" : ISODate("2013-11-08T13:02:28Z"),
            "self" : true
        },

        {
            "_id" : 2,
            "name" : "hostname:27003",
            "health" : 0,
            "state" : 8,
            "stateStr" : "SECONDARY",
            "uptime" : 0,
            "optime" : Timestamp(1383915748, 1),
            "optimeDate" : ISODate("2013-11-08T13:02:28Z"),
            "lastHeartbeat" : ISODate("2013-11-08T14:58:48Z"),
            "lastHeartbeatRecv" : ISODate("2013-11-08T14:58:42Z"),
            "pingMs" : 0,
            "syncingTo" : "hostname:27001"
        }
    ],
    "ok" : 1
}

在这里,如果其中一个辅助部件未被同步,那么您将为相同的副本集输出rs.status().首先你会看到optime和optimeDate的主机名:27003不同于primary,stateStr设置为RECOVERING,并且有适当的lastHeartbeatMessage.

{
    "set" : "rs0",
    "date" : ISODate("2013-11-08T15:01:34Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "hostname:27001",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 320,
            "optime" : Timestamp(1383922858, 767),
            "optimeDate" : ISODate("2013-11-08T15:00:58Z"),
            "self" : true
        },

        {
            "_id" : 2,
            "name" : "hostname:27003",
            "health" : 1,
            "state" : 3,
            "stateStr" : "RECOVERING",
            "uptime" : 14,
            "optime" : Timestamp(1383915748, 1),
            "optimeDate" : ISODate("2013-11-08T13:02:28Z"),
            "lastHeartbeat" : ISODate("2013-11-08T15:01:34Z"),
            "lastHeartbeatRecv" : ISODate("2013-11-08T15:01:34Z"),
            "pingMs" : 0,
            "lastHeartbeatMessage" : "still syncing, not yet to minValid optime 527cfc90:19c4",
            "syncingTo" : "hostname:27001"
        }
    ],
    "ok" : 1
}

如果secondary由slaveDelay创建,则optime和optimeDate可以不同,但​​是stateStr和lastHeartbeatMessage将指示是否存在一些滞后.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/19675117/how-to-check-secondary-is-synced-now-or-not


以上所述就是小编给大家介绍的《mongodb – 如何检查中继现在或不同步》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ES6 标准入门(第2版)

ES6 标准入门(第2版)

阮一峰 / 电子工业出版社 / 2016-1 / 69.00元

ES6(又名 ES2105)是 JavaScript 语言的新标准,2015 年 6 月正式发布后,得到了迅速推广,是目前业界超级活跃的计算机语言。《ES6标准入门(第2版)》是国内仅有的一本 ES6 教程,在前版基础上增补了大量内容——对标准进行了彻底的解读,所有新增的语法知识(包括即将发布的 ES7)都给予了详细介绍,并且紧扣业界开发实践,给出了大量简洁易懂、可以即学即用的示例代码。 《......一起来看看 《ES6 标准入门(第2版)》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具