读书笔记: MongoDB权威指南

https://book.douban.com/people/fleure/annotation/6068947/

9.4.2 同步

<原文开始>使用从节点来扩展 Mongodb 的读取有个要点,就是数据复制不同步。</原文结束> 略坑,这类异步更新就是最终一致性? <原文开始>oplog 存储在固定集合中。</原文结束> 固定集合是一个 ring buffer,发生溢出时会挤掉最旧的数据。 <原文开始>从节点第一次启动时,会对主节点数据进行完整的同步。</原文结束> <原文开始>同步完成后,从节点开始查询主节点的 oplog 并执行这些操作以保证数据是最新的。</原文结束> <原文开始>如果从节点的操作已经被主节点落下很远了,从节点就跟不上同步了。跟不上同步的从节点无法一直不断地追赶主节点,因为主节点所有的 oplog 都 “太新” 了。从节点发生宕机或者疲于应付读取时就会发生这种情况。也会在执行完完整同步以后发生类似的事情,因为只要同步时间太长,同步完成时,oplog 可能已经滚了一圈了。</原文结束> <原文开始>从节点跟不上同步时,复制就会停下,从节点需要重新做完整的同步。</原文结束> ## 9.1.1 选项 <原文开始>--slavedelay 用在从节点上,当应用主节点的操作时增加延时(单位是秒)。这样就能设置延时从节点,这种节点对用户无意中删除重要文档或者插入垃圾数据等事故有很重要的防护作用。 </原文结束>