mongodb主从同步、数据一致性和高可用分析

本文深入探讨了MongoDB的副本集机制,包括读写操作、主从复制与选主策略,以及在主节点故障时的数据一致性处理。同时,分析了配置服务器在数据一致性与可用性方面的特点,以及分片的负载均衡和数据迁移过程,确保在集群运行中的数据安全和高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、副本集(一个主,多个从,而且高可用)

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 the set.(所以是支持的)

  (2)变更不会出现数据丢失,因为mongodb会停止原主的更新操作,直到新主追上最新的plog后并成功变为主,才恢复更新操作(跟redis cluster的no force变更策略一样)。

2.shard 的config server

(1) 数据一致性保证?

    Config servers are special mongod instances that store the metadata for a sharded cluster.  All config servers must be available to deploy a sharded cluster or to make any changes to cluster metadata. Config servers do not run as replica sets. Each sharded cluster must have its own config servers. 

    When writing to the three config servers, a coor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值