mongodb基础系列—主从复制具体搭建以及解说(2)
5.其实我们所做的操作,mongodb都给我们记录了oplog,保存在特殊数据库中local的oplog.$main集合中。注意:local数据库中只保存更改数据库状态的操作,insert、delete、update.查询操作find()是不会跟我们记录的。
查看oplog记录:【后期另一种主从复制模式也是保存在此集合中】
6.介绍oplog.$main集合的数据结构,这些都代表什么意思,我们又是如何找到有用的信息呢?为什么我们要了解这块呢?
因为复制机制,就是通过查看oplog信息来维护数据库同步一致。
如上图,这个集合中,有属性key :ts,op,n,o
其实:ts:代表的是8字节的 时间戳,由4字节unix timestamp + 4字节自增计数表示这个值很重要,在选举(如master宕机时)新primary时,会选择ts最大的那个secondary作为新primary。【后面我们介绍另一种主从模式复本集中就会用到】
op:1 字节的操作类型,例如i表示insert,d表示delete。【如上图中,我们在日志中查看op 是i,正是我们刚插入的一条信息】
ns:操作所在的namespace。【namespace是当前数据.当前集合。使用db.my.insert则是默认创建my集合】
o:操作所对应的 document,即当前操作的内容(比如更新操作时要更新的的字段和值【上图正是我们insert的一条具体信息】)
o2: 在执行更新操作时的where条件,仅限于 update时才有该属性【下图则会展示此属性】
其中op,可以是如下几种情形之一:
"i": insert
"u": update
"d": delete
"c": db cmd
"db": 声明当前数据库 (其中ns 被设置成为=>数据库名称+ '.')
"n": no op,即空操作,其会定期执行以确保时效性
7.展示日志记录中op其他值,比如删除、更新。【前提我们在主服务器中执行这些操作】
op:d 删除操作。o:具体删除那一条。因为_id是唯一的。
op:u 更新操作。o:具体更新那一条记录,o2:更新那个字段。
哎,絮絮叨叨了N长,下篇博客再更新另一种主从复制模式吧:副本集。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>