面试题答案
一键面试oplog(操作日志)概念
- 定义:oplog 是 MongoDB 副本集中主节点(Primary)上记录所有数据库写操作的特殊的固定集合(capped collection)。它以时间顺序记录每一个对数据库的修改操作,这些操作包括插入、更新、删除等。
- 存储结构:oplog 中的每一个文档都代表一个具体的数据库操作,文档包含了操作的详细信息,如操作类型(例如
insert
、update
、delete
等)、操作影响的集合、操作的具体内容等。
oplog在副本集同步过程中的作用
- 数据复制:副本集中的从节点(Secondary)通过持续监控主节点的 oplog 来获取最新的写操作。从节点会定期从主节点拉取 oplog 中的新记录,然后在本地应用这些操作,从而保持与主节点的数据同步。这确保了副本集中各个节点的数据一致性。
- 故障恢复:当主节点发生故障时,副本集中的其他从节点可以根据 oplog 中的记录来继续完成未完成的操作,以保证数据的完整性。新选举产生的主节点会基于 oplog 来确保数据状态的连续性,使得整个副本集能够在故障后快速恢复正常运行。
- 维护副本集状态:oplog 为副本集成员之间的状态同步提供了关键依据。它使得副本集中的节点能够清楚知晓主节点上发生的所有数据变化,有助于维持整个副本集的数据一致性和可用性。