MongoDB 副本集概述
一、为什么要使用副本集?
在了解副本集之前,我们先来聊聊副本集的对立面——单机服务器存在的问题:
在学习MongoDB时,我们一般都只需要启动一个 Mongod服务,也就是只有一个MongoDB服务器。这样用来学习是没有问题,但用在生产环境上却是万万不可、风险极高的:如果单机服务器出现了崩溃、网络故障、或者硬件磁盘损坏等问题而导致不可访问了,我们的数据库将至少罢工一段时间,严重时可能永远都无法恢复。这将导致严重的生产事故!!!
主从复制和副本集都是为了解决这种问题而存在的,现如今已经很少使用主从复制,都是采用副本集的方式。本文后面会简单讲解一下副本集和主从复制的区别。
二、副本集是什么?有什么用?有哪些成员?
副本集是一组维护相同数据的Mongod服务。
副本集由多个服务组成,包含一个主服务器/主节点(primary)负责处理客户端请求,以及若干个副服务器/备份节点(secondary)负责保存主服务器的数据副本。如果主服务器崩溃了,副本集通过其主节点选举机制,可以自动将某个备份节点升级成为主节点。这样,就可以避免因主节点服务器不可访问而影响用户使用。(这种机制被称为为自动故障转移)。
副本集的成员包含一个主节点和若干个备份节点,有一只特殊的备份节点叫作“仲裁者”,仲裁者不会备份数据,只会在选举主节