# 1. mongodump/mongorestore 逻辑备份与文件系统快照物理备份在一致性、速度、跨版本兼容与恢复粒度上有何差异? A 物理快照恢复粒度最细 B mongodump 逻辑备份跨版本兼容好、粒度细但速度慢,物理快照速度快但跨版本兼容差 ✓ 正确答案 C mongodump 速度比物理快照快 D 逻辑备份无法单个集合恢复
# 2. MongoDB 副本集备份如何保证一致性快照(对 secondary 做文件系统快照、或快照配合 oplog、db.fsyncLock 锁写的代价)? A 对 secondary 快照会阻塞主库 B fsyncLock 不阻塞任何写入 C 对 secondary 做快照配合 oplog 可兼顾一致与不阻塞主库,fsyncLock 会阻塞写入 ✓ 正确答案 D 快照无法配合 oplog 恢复时间点
# 3. 分片集群备份为何要先停 balancer 再对各 shard 与 config server 取同一时间点快照?不停 balancer 会导致怎样的跨分片不一致? A 各 shard 可取不同时间点快照 B 备份时无需停 balancer C 备份前应停 balancer,再取各 shard 与 config server 同一时间点快照,避免元数据与数据不一致 ✓ 正确答案 D 不停 balancer 不会引起不一致
# 4. 如何借助 oplog 做时间点恢复(mongorestore --oplogReplay --oplogLimit)?oplog 大小与可回溯窗口(滚动覆盖)如何规划? A 时间点恢复不需要 oplog B oplog 大小与回溯窗口无关 C --oplogLimit 用于扩大备份范围 D mongorestore --oplogReplay 回放 oplog 到 --oplogLimit 指定时间点,oplog 大小决定回溯窗口 ✓ 正确答案
# 5. MongoDB 副本集滚动升级的标准流程(先升级 secondary → rs.stepDown → 升级原 primary)是什么?如何验证选举与版本一致? A 升级期间集群需要停机 B 先升级 primary 再升级 secondary C 升级 primary 时无需 stepDown D 先升级 secondary,再 stepDown 原 primary 选举后升级它,保证多数派在线 ✓ 正确答案
# 6. MongoDB 4.2+ 索引构建机制(先在 secondary 构建、最后 primary 构建以缩短影响)与旧版前台/后台构建有何差异?构建期间写入如何处理? A 后台构建必然阻塞写入 B 前台构建不阻塞任何读写 C 4.2+ 混合构建先在 secondary 构建、最后 primary 构建,前台构建会阻塞读写 ✓ 正确答案 D 4.2+ 构建只在 primary 上执行
# 7. readConcern: majority 如何维护已提交快照并推进?与 local/available 读相比,实现代价与一致性收益是什么? A majority 只读多数派已提交数据,维护已提交快照,比 local 更一致但代价更高 ✓ 正确答案 B majority 读不等待多数派 C local 读保证强一致 D majority 与 local 无差异
# 8. w:majority 在少数派分区时写入为何阻塞?j 与 w 的组合语义是什么,如何配置以满足不同 RPO 要求? A w:majority 在少数派分区时写入阻塞,j 控制 journal 持久化,组合决定 RPO ✓ 正确答案 B w:majority 在少数派分区时写入正常 C j 决定需多少节点确认 D w 与 RPO 无关
# 9. 如何用 database profiler(慢查询采样)与 db.currentOp() 定位慢查询与长事务/长操作? A profiler 记录慢查询到 system.profile,db.currentOp() 查看当前长事务与锁等待 ✓ 正确答案 B profiler 查看当前运行操作 C db.currentOp() 记录历史慢查询 D 两者都无法定位慢查询
# 10. mongorestore 的 --drop、--nsInclude/--nsExclude、--restoreDbUsersAndRoles 各自适用什么恢复场景? A --drop 用于选择性恢复 B --drop 恢复前删除目标集合,--nsInclude/--nsExclude 选择性恢复,--restoreDbUsersAndRoles 恢复权限 ✓ 正确答案 C --nsInclude 用于恢复所有集合 D --restoreDbUsersAndRoles 与权限无关
# 11. Read Concern 的级别,local、available、majority、linearizable? A available 强于 majority B local 与 linearizable 一致 C majority 读无需等待 D local 读本地数据速度快但可能不一致,linearizable 线性一致但必须读主节点且最慢 ✓ 正确答案
# 12. Write Concern 的级别,w、j、wtimeout? A w 控制 journal 持久化 B w 指定需多少节点确认,j 控制 journal 持久化,wtimeout 控制等待超时 ✓ 正确答案 C j 控制需多少节点确认 D wtimeout 控制读取一致性
# 13. 副本集故障转移的触发条件与选举时长(election timeout),应用如何处理 “not primary” 错误并重试?primary 网络分区时的只读行为如何配置? A 故障转移即时完成,无需选举 B primary 失联超选举超时后触发选举,应用需处理 not primary 错误并幂等重试 ✓ 正确答案 C not primary 错误无需重试 D primary 分区时应用无法读任何数据
# 14. 因果一致性会话(Causal Consistency)? A 因果一致性是最终一致 B 因果一致性通过 clusterTime 保证会话内因果相关操作按顺序读取 ✓ 正确答案 C 因果一致性要求必须读主节点 D 因果一致性只保证单次操作
# 15. compact 命令如何回收 WiredTiger 磁盘空间?为什么它会阻塞该集合、应如何在维护窗口或滚动执行? A compact 只回收内存空间 B compact 不阻塞集合读写 C compact 可在高峰并发执行 D compact 重写数据文件回收空间,但阻塞该集合,应在维护窗口或滚动执行 ✓ 正确答案
# 16. WiredTiger 快照读的实现? A 快照读需要全局锁 B 快照读会阻塞写操作 C 快照读读取最新未提交版本 D 快照读基于 MVCC 版本与时间戳,读取快照时刻的一致版本,不阻塞写 ✓ 正确答案
# 17. MongoDB 在线备份的工程化,如何组合文件系统快照与 oplog 归档降低 RPO,并定期做恢复演练验证备份可恢复? A 恢复演练没有必要 B 快照无法配合 oplog 降低 RPO C 组合文件系统快照与 oplog 归档可把 RPO 降到近零,并应定期恢复演练验证可恢复 ✓ 正确答案 D RPO 与 oplog 归档无关
# 18. MongoDB 的读偏好(readPreference)与标签集(tag sets),如何把报表查询路由到指定 secondary? A tag sets 与路由无关 B readPreference 决定读节点类型,tag sets 可精确匹配标签,把报表查询路由到指定 secondary ✓ 正确答案 C readPreference 只能读主节点 D 报表查询无法路由到 secondary
# 19. linearizable 读关注如何实现(读主节点并等待多数派确认)?为什么比 majority 更慢且要求路由到主节点? A linearizable 可读任意 secondary B linearizable 读路由到主节点并等待多数派确认读操作,因此比 majority 慢且必须读主节点 ✓ 正确答案 C linearizable 与 majority 延迟相同 D linearizable 无需主节点参与