故障诊断与应急处置
本主题提供 MongoDB 生产故障的统一排障框架与按场景组织的处置手册。所有条目遵循同一流程,强调先无损观测、缓解优先、验证恢复、复盘预防,并在证据不足时拒绝给出破坏性建议。
统一排障框架
破坏性操作红线
证据不足时,禁止直接建议:重启节点、强制 reconfig、删除数据/文件、降级 write concern、关闭认证/TLS。优先只读诊断;任何高/严重风险操作需备份、审批、回滚与维护窗口。
场景手册
| 编号 | 条目 | 覆盖故障 |
|---|---|---|
| INC-01 | 连接、认证与连接池 | 连接失败、认证失败、TLS 握手失败、连接池耗尽 |
| INC-02 | 慢查询、扫描与排序溢写 | 查询变慢、扫描文档过多、排序溢写、缓存命中下降 |
| INC-03 | 资源饱和:CPU/内存/磁盘/网络 | CPU、内存、磁盘空间/延迟、网络异常 |
| INC-04 | 复制、选举与 oplog | 写关注超时、复制延迟、频繁选举、RECOVERING/ROLLBACK、oplog 不足、初始同步失败、成员失联 |
| INC-05 | 分片:不均、热点与迁移 | 分片不均、热点、迁移积压、jumbo chunk、mongos 路由异常 |
| INC-06 | 事务与备份恢复 | 事务冲突、提交结果未知、长事务、会话泄漏、备份失败、恢复失败、数据误删与不一致 |
通用只读观测命令
javascript
// 连接性与拓扑
db.adminCommand({ ping: 1 })
db.hello()
// 运行态
db.serverStatus()
db.currentOp({ active: true, secs_running: { $gte: 3 } })
// 副本集
rs.status(); rs.printSecondaryReplicationInfo(); rs.printReplicationInfo()
// 分片(经 mongos)
sh.status(); db.adminCommand({ balancerStatus: 1 })