深色模式
数据库运维总览
摘要:数据库运维围绕「数据不丢、服务不断、查询不慢」三件事展开,核心职责是备份恢复、高可用、性能优化与变更管控。本文梳理职责边界、风险红线与新手学习路线,帮你建立整体认知。
适用环境
- 角色:刚接触数据库维护的运维/开发,需独立管理 MySQL、PostgreSQL、Redis 等实例
- 场景:接手一套已有数据库,或从零搭建
- 心智模型:数据库是「有状态服务」,任何操作都要先想好退路
一、四项核心职责
| 职责 | 日常动作 | 失败后果 |
|---|---|---|
| 备份与恢复 | 定时全量+增量,定期做恢复演练 | 数据永久丢失,不可挽回 |
| 高可用 | 主从/集群搭建,故障切换演练 | 业务长时间中断 |
| 性能优化 | 慢日志分析、索引优化、参数调优 | 接口超时、雪崩 |
| 变更管控 | DDL/DML 审核、灰度、回滚预案 | 误删表、锁表、线上事故 |
第一红线
任何删除/更新/DDL 操作前,先确认三件事:备份在哪、回滚 SQL 是什么、影响多少行。没有备份的操作一律不做。
二、新手上手路线
- 先装一台单机 MySQL,手动跑通备份与恢复(本分类第 2、4、5 篇)。
- 搭一主一从,看懂
Seconds_Behind_Master与复制报错(第 6 篇)。 - 学会看慢日志和
EXPLAIN,能定位一条慢 SQL(第 7 篇)。 - 再扩展到 PostgreSQL / Redis / MongoDB 的基本部署与备份。
- 最后补监控、巡检脚本、变更规范(第 19、30、32 篇)。
三、每日/每周/每月节奏
bash
# 每日:看一眼实例是否健康(存活、连接数、复制状态)
mysqladmin -uroot -p ping
mysql -uroot -p -e "SHOW GLOBAL STATUS LIKE 'Threads_connected';"
# 每周:检查备份任务是否成功、磁盘余量
df -h /data
ls -lh /data/backup/ | tail -n 5
# 每月:一次恢复演练 + 慢查询 Top 10 复盘1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
四、常见风险与对策
| 风险 | 对策 |
|---|---|
| 误删数据 | 回收站/延迟从库 + 定期恢复演练 |
| 主库宕机 | 主从切换预案 + 定期演练 |
| 慢 SQL 拖垮 | 慢日志告警 + 上线前 SQL 审核 |
| 磁盘写满 | 容量监控 + 备份清理策略 |
| 变更失败 | 变更单 + 灰度 + 回滚脚本 |
五、术语速查
- QPS/TPS:每秒查询数/事务数,衡量负载。
- 主从复制:主库写、从库异步追 binlog。
- DDL/DML:表结构变更语句 / 数据增删改语句。
- RPO/RTO:最多丢多少数据 / 最长多久恢复,备份方案的量化目标。
验证
- [ ] 能说出备份、恢复、高可用、优化四类职责各一件事
- [ ] 知道本机有哪些数据库实例、数据目录和备份目录在哪
- [ ] 能手写一条「删数据前的三步确认」清单
常见坑
WARNING
把「有备份任务」当成「能恢复」。备份成功不等于可恢复,必须定期做真实还原演练。
WARNING
直接在生产主库上跑 EXPLAIN 之外的探索性操作、或用 root 账号给业务程序用,是绝大多数事故的源头。
DANGER
DROP/TRUNCATE/无 WHERE 的 UPDATE/DELETE 一旦执行无法用事务回滚(DDL 隐式提交),务必先在测试库验证。