面试题答案
一键面试MongoDB副本集Oplog窗口的定义
- MongoDB副本集的Oplog(操作日志)是一个固定大小的集合,记录了主节点(Primary)上所有数据库操作。
- Oplog窗口指的是从副本集成员(Secondary)当前已应用的最后一个操作记录,到Oplog末尾之间的这段日志范围。
在副本集数据同步中的作用
- 数据同步依据:副本集成员(Secondary)通过不断从主节点(Primary)拉取Oplog窗口内的操作记录,并应用这些操作来保持与主节点数据的一致性。例如,主节点上执行了插入文档的操作,该操作会记录在Oplog中,Secondary节点通过获取此Oplog记录并在本地执行相同插入操作来同步数据。
- 故障恢复与同步调整:当副本集成员因故障恢复或新成员加入时,通过Oplog窗口确定需要同步的数据范围,加快数据同步速度。例如,一个Secondary节点故障重启后,它会根据自身已同步的位置,从Oplog窗口中获取未同步的操作记录进行应用,快速赶上主节点的数据状态。
- 保证数据一致性:Oplog窗口确保了副本集内各成员数据变化的顺序性和一致性,因为所有成员都基于相同的Oplog记录进行数据操作应用。