Files
devops/dba-mianshi.md
2026-07-07 16:05:18 +08:00

6.7 KiB
Raw Permalink Blame History

DBA 主管面试题(高级 / DBA Manager

适用于高级 DBA、DBA Team Leader、数据库主管、数据库架构师等岗位。


一、团队管理

1. 介绍一下你管理过的 DBA 团队?

考察点

  • 团队规模
  • 人员分工
  • 值班体系
  • 技术能力建设

优秀回答要点

  • 团队人数
  • 每个人负责什么
  • 如何保证7×24值班
  • 如何培养新人

2. 如何培养一个新 DBA

通常希望听到:

第一阶段(基础)

  • Linux
  • MySQL基础
  • SQL优化

第二阶段(生产)

  • 主从复制
  • 备份恢复
  • 故障排查

第三阶段(独立)

  • Shadow值班
  • 独立处理故障
  • 故障复盘

3. 如何考核 DBA

常见 KPI

  • SLA
  • 数据库可用率
  • MTTR
  • SQL审核覆盖率
  • 自动化率
  • 备份成功率
  • 告警处理时长

二、数据库架构

4. 如何设计一个互联网数据库架构?

参考:

                LVS / SLB
                     │
              ProxyProxySQL
                     │
        ┌────────────┴────────────┐
        │                         │
     Primary                  Replica
        │                         │
        └────────────┬────────────┘
                     │
                Backup Server
                     │
                 Monitoring

需要说明:

  • 主从复制
  • 半同步
  • 自动切换
  • 备份恢复
  • 监控报警

5. 如何实现数据库高可用?

需要说明:

  • MHA
  • Orchestrator
  • Keepalived
  • VIP
  • Group Replication
  • InnoDB Cluster

重点:

为什么选择?

为什么不用其它方案?


6. 数据量达到100TB怎么办

回答方向:

  • 分库分表
  • 冷热分离
  • 历史归档
  • 数据仓库
  • 对象存储
  • OLTP、OLAP拆分

三、数据库性能

7. 数据库CPU突然100%,怎么办?

建议回答流程:

收到告警
      │
确认影响范围
      │
查看监控
      │
查看Processlist
      │
定位SQL
      │
分析Explain
      │
决定Kill还是优化
      │
恢复业务
      │
故障复盘

重点:

体现处理流程。


8. 数据库连接数打满怎么办?

可能原因:

  • 慢SQL
  • 程序连接泄漏
  • 大事务
  • 死锁

处理流程:

  • 限流
  • Kill异常连接
  • 定位SQL
  • 调整连接池

9. Buffer Pool命中率下降怎么办

回答:

检查:

  • Buffer Pool大小
  • 热点数据
  • 全表扫描
  • 是否需要扩容

四、生产事故

10. 请讲一次最严重的数据库事故。

推荐回答模板:

背景

项目是什么。

故障现象

例如:

CPU100%

原因

SQL缺索引。

处理过程

  • Kill SQL
  • 新建索引
  • 恢复业务

后续措施

  • SQL审核
  • 自动监控
  • 上线规范

11. 有没有误删数据?

回答:

  • 如何恢复?
  • PITR用了多久
  • 是否有演练?

12. 主库宕机怎么办?

流程:

发现故障

↓

确认主库不可恢复

↓

停止写入

↓

切换VIP

↓

提升从库

↓

恢复业务

↓

检查一致性

↓

复盘

五、数据库规范

13. 如何避免开发写慢SQL

建立:

  • SQL审核
  • Explain审核
  • 自动Review
  • CI检查

14. 如何避免误删?

措施:

  • SQL审核
  • 权限隔离
  • 禁止无WHERE
  • sql_safe_updates
  • 延迟从库
  • Binlog恢复

15. 如何规范索引?

例如:

  • 每张表必须有主键
  • 不允许重复索引
  • 控制联合索引数量
  • 定期清理无效索引

六、自动化建设

16. 做过哪些自动化?

例如:

  • 自动巡检
  • 自动备份
  • 自动恢复验证
  • 自动SQL审核
  • 自动切换
  • 自动告警
  • 自动扩容

17. 如何建设数据库平台?

一般包括:

  • 工单平台
  • SQL审核
  • 发布平台
  • 巡检平台
  • CMDB
  • 权限管理

七、监控体系

18. 数据库监控哪些指标?

MySQL

  • QPS
  • TPS
  • Threads Running
  • Buffer Pool Hit Rate
  • Slow Query
  • Deadlock
  • Connections
  • Replication Delay

Linux

  • CPU
  • Memory
  • IO
  • Network
  • Disk

业务:

  • RT
  • Error Rate
  • TPS

八、成本优化

19. 如何降低数据库成本?

例如:

  • 历史归档
  • SSD分层
  • 云数据库
  • 合并实例
  • 自动扩容
  • 参数优化

20. 为什么不用Oracle

考察:

  • 成本
  • 授权
  • 维护
  • 人员
  • 社区

九、跨团队合作

21. 开发说数据库慢怎么办?

流程:

收集证据

↓

查看监控

↓

SQL分析

↓

Explain

↓

机器资源

↓

共同定位

↓

共同解决

22. 如何推动开发规范?

例如:

建立:

  • SQL Review
  • 开发规范
  • 培训
  • 发布审核
  • 自动检查

十、管理能力

23. DBA最重要的职责是什么

优秀回答:

DBA不仅负责数据库运行更负责数据库生命周期管理包括架构设计、稳定性保障、容量规划、安全管理、自动化建设和团队规范建设最终保障业务稳定运行。


24. 如何减少线上事故?

建立:

  • 发布审核
  • SQL审核
  • 自动巡检
  • 自动报警
  • 灰度发布
  • 故障演练
  • 应急预案

25. 如何建立数据库规范?

包括:

  • 命名规范
  • SQL规范
  • 索引规范
  • 发布规范
  • 权限规范
  • 备份规范
  • 恢复演练

十一、开放性问题

26. 为什么选择MySQL

27. MySQL未来的发展怎么看

28. 如何评价云数据库?

29. 如何评价国产数据库?

30. 未来数据库团队的发展方向?

可以回答:

  • 自动化
  • 平台化
  • 智能运维AIOps
  • 云原生数据库
  • 数据治理

十二、主管岗位十大经典问题

  1. 请介绍一次最严重的数据库事故。
  2. 主库宕机如何切换?
  3. 如何保证数据库99.99%可用?
  4. 如何建设数据库规范?
  5. 如何管理DBA团队
  6. 如何培养新人?
  7. 如何建设数据库自动化平台?
  8. 如何做容量规划?
  9. 如何控制数据库成本?
  10. 你认为DBA主管最重要的职责是什么

面试建议

DBA主管岗位面试官最关注的通常不是命令是否熟练而是

  • 是否处理过真实生产事故
  • 是否具备架构设计能力
  • 是否有团队管理经验
  • 是否建立过数据库规范
  • 是否推动过自动化建设
  • 是否能够跨团队沟通协调
  • 是否有风险意识和复盘能力

回答时建议遵循 STAR 方法:

  • SSituation:项目背景
  • TTask:你的职责
  • AAction:具体采取了哪些措施
  • RResult:最终效果(最好有量化指标,如可用性提升、故障率下降、恢复时间缩短等)