mongodb副本集oplogSize设置过小的问题

mongodb副本集构建的高可用方案,最少需要三个节点,一个主节点master,一个从节点slave,一个选举仲裁节点arbiter。当主节点奔溃的时候,仲裁节点选举从节点来接替主节点,继续提供数据服务,保证高可用。副本集方案中,从节点也会保存数据,他的数据是从主节点同步过来的,和mysql bin-log主从复制的方式类似,mongodb采用的是根据oplog来从主节点同步数据。oplog不是无限大,默认如果不手动设置,那么oplogSize就是磁盘空间的5%。超过了5%,oplog会被覆盖。

存在这么一种情况,slave因为某种原因挂掉了。正常情况下,他不会影响系统的正常运行,因为主节点正常运行,但是如果我们重新启动从节点,那么从节点会从主节点上恢复数据,这期间,如果主节点写入数据过快,oplog被覆盖了,也就是说,从节点需要恢复的数据不是从奔溃那一刻开始恢复的,这中间的数据被丢掉了,这种情况下,从节点不会正常的恢复,状态会变为RECOVERING,这就是本文需要讨论的一个问题。

oplog被覆盖,主要的原因是主节点写入数据过快导致的,写满了嘛。因为oplogSize有限定值,超过了这个限定值,那么就会被覆盖。这里来模拟oplogSize设置过小,从节点奔溃,然后恢复,出现RECOVERING状态的情形。

1、构建副本集构建 ,各个节点的配置如下图所示,同一个linux主机,三个mongod进程,分别开启端口27017,27018,27019。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值