一、副本集(一个主,多个从,而且高可用)
1. 读操作可指定从主节点读取还是从从节点读取;写操作只写主节点,由主节点同步操作到从节点,可指节写多少个节点成功后才认为成功。
2. 主从复制和选主
(1)如果主挂了,mongodb保证只有操作序列为最大的从才能成为新的主,这只保证了数据尽可能地少丢,如果写操作是写1个节点以上成功才认为成功,可保证不丢数据
(2)如果新的主丢了老的主的部分操作,而且老的主又重新加入副本集,这时老的主会回滚操作以保证与新的主状态一致。回滚日志会被记录到文件里,通过工具可手动将回滚操作来新的主上执行,以恢复数据。另外,如果需要的回滚数据超过300M,老的主不会进行回滚,并log异常;如果要强制回滚到300M之前,可采用重新同步数据的方法来保证与新主状态一致,但不能恢复这300M数据了。
(3)mongodb可保证优先级最高的从节点变为主;
(4)优先级为0的从节点不进行选主,即不能成为主;
(5)除了主从节点,还有仲裁者节点,不保存副本数据,只用于选主投票
1.副本集支持手动变更主从关系吗?支持的话,变更会不会出现数据丢失呢?可对比下redis cluster
(1)You can force a replica set member to become primary by giving it a higher priority value than any other member in