首页 > 数据库技术 > 详细

Mongodb 笔记06

时间:2016-01-10 20:01:35      阅读:197      评论:0      收藏:0      [点我收藏+]

副本集的组成

1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作。oplog是主节点的local数据库中的一个固定集合。备份节点通过查询整个结婚就可以知道要进行

    复制的操作了。每个备份节点都维护者自己的oplog,记录每一次从主节点复制数据的操作。这样,每个成员都可以作为同步源提供给其他成员使用。

2. 将oplog中的同一个操作执行多次,与只执行一次的效果是一样的。如果单个操作会影响多个文档,那么每个受影响的文档都会对应oplog中的一条日志。例如db.remove()删除了10个文档,那就对应十条日志记录。

3. oplog是主节点的local数据库中的一个固定集合。先从数据库同步数据,然后从日志里同步以后的数据。

4. 为了避免陈旧备份节点的出现,让主节点使用比较大的operlog保存足够多的操作日志是很重要的。大的operlog会占用更多的磁盘空间,通常来说,这是一个比较好的折衷方案,因为磁盘会越来越便宜。

    而且实际中使用的oplog只有一小部分,因此oplog不会占用太多RAM。

5. 心跳:为了维护最新的视图,每个成员每隔两秒就会向其他成员发送一个心跳请求。心跳请求的信息量非常小,用于检查每个成员的状态。心跳最重要的功能之一就是让主节点知道自己是否满足集合"大多数"

    的条件。如果主节点不再得到"大多数"服务器的支持,它就会退位,变成备份节点。

6. 成员状态:主节点,备份节点,STARTUP(成员刚启动),STARTUP2(初始化同步过程),RECOVERING(正常,但暂不能处理读请求),ARBITER(仲裁者状态)

7. 系统出问题时会处于一下状态:DOWN(不可达),UNKNOW(),REMOVED(成员被移除时),ROLLBACK(回滚中),FATAL(错误)

8. 回滚:有些情况下,回滚可能会导致数据丢失,这些丢失的数据被保存到一个.bson文件中,可以手动恢复。

9. 某些情况下,如果要回滚的内容太多,MongoDB可能承受不了。如果要回滚的数量大于300M,或者要回滚30分钟以上的操作,回滚就会失败。对于回滚失败的节点,必须要重新同步。

 

Mongodb 笔记06

原文:http://www.cnblogs.com/Jtianlin/p/5118962.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!