mongodb日志oplog解读

一、新增记录日志

{
    "ts": Timestamp(1510305485,41),
    "t": NumberLong(5),
    "h": NumberLong("7492832279483245745"),
    "v": 2,
    "op": "i",
    "ns": "z3dbus.test",
    "o": {
        "_id": ObjectId("5a056ecdb96f487a7f77d2c5"),
        "name": "name_insert"
    }
}

二、修改记录日志

{
    "ts": Timestamp(1510305775,34),
    "t": NumberLong(5),
    "h": NumberLong("-6029253721195928804"),
    "v": 2,
    "op": "u",
    "ns": "z3dbus.test",
    "o2": {
        "_id": ObjectId("5a056ecdb96f487a7f77d2c5")
    },
    "o": {
        "_id": ObjectId("5a056ecdb96f487a7f77d2c5"),
        "name": "name_update"
    }
}

三、删除记录日志

{
    "ts": Timestamp(1510305960,2),
    "t": NumberLong(5),
    "h": NumberLong("-4557629900402454893"),
    "v": 2,
    "op": "d",
    "ns": "z3dbus.test",
    "o": {
        "_id": ObjectId("5a056ecdb96f487a7f77d2c5")
    }
}

字段含义
ts:8字节的时间戳,由4字节unix timestamp + 4字节自增计数表示。
在选举(如master宕机时)新primary时,会选择ts最大的那个secondary作为新primary。
op:1字节的操作类型,例如i表示insert,d表示delete。
ns:操作所在的namespace。
o:操作所对应的document,即当前操作的内容(比如更新操作时要更新的的字段和值)
o2: 在执行更新操作时的条件,仅限于update时才有该属性。
其中op,可以是如下几种情形之一:
"i": insert
"u": update
"d": delete
"c": db cmd
"db":声明当前数据库 (其中ns 被设置成为=>数据库名称+ '.')
"n": no op,即空操作,其会定期执行以确保时效性 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值