监控、备份恢复与迁移
关键监控指标
无论哪种数据库,都应监控以下维度:
Tip
监控的重点不是「看数据」而是「设阈值与告警」。为连接数、复制延迟、磁盘空间、慢查询数量设置明确的告警线,并确保告警能触达值班人,否则再全的监控也形同虚设。
容量规划
- 磁盘:预留至少 30% 余量;关注增长率与数据归档策略。
- 内存:MySQL 的 Buffer Pool、PG 的
shared_buffers、Redis 是内存消耗主力。 - 连接:用连接池;按
QPS × 平均查询耗时估算并发连接需求。 - 增长:用历史数据估算增长曲线,提前规划扩容或分片。
备份策略
恢复目标:
- RPO(恢复点目标):最多容忍丢失多少数据(由备份频率决定)。
- RTO(恢复时间目标):最多容忍中断多久(由恢复速度决定)。
Warning
mysqldump 用 --single-transaction 才能在 InnoDB 上获得一致性快照且不锁表。恢复演练要定期做:把备份恢复到新实例并校验行数与关键数据,确认 RTO/RPO 达标。
在线数据迁移
停机迁移(简单)
不停机迁移
适合大库与 7×24 业务,核心是全量 + 增量 + 校验 + 切换:
- 全量导出源库快照,导入目标。
- 通过 CDC(binlog/WAL)持续同步增量到目标。
- 双写或灰度读,比对数据一致性。
- 在低峰期短暂停写,追平最后增量后切流量。
- 回滚预案:保留源库可回切。
Warning
迁移前务必确认字符集、时区、排序规则、SQL 模式(sql_mode)、自增与序列的差异——这些是异构或跨版本迁移中最常见的「迁移成功但数据错误」的元凶。迁移后要抽样比对与全量校验。
小结
- 监控要覆盖连接、吞吐、延迟、慢查询、复制、资源、锁与缓存,并配告警。
- 备份需全量 + 增量 + 异地,且必须演练恢复;明确 RPO/RTO。
- 在线迁移遵循「全量 + 增量 + 校验 + 切换 + 可回滚」。
- 关注字符集、时区、排序规则等「隐形陷阱」。