写入关注与读关注与备份恢复与运维

共 19 题
#

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 无需主节点参与