监控、备份恢复与迁移

关键监控指标

无论哪种数据库,都应监控以下维度:

维度指标说明
连接当前连接数 / 上限接近上限意味着连接泄漏或池过大
吞吐QPS / TPS结合响应时间看
延迟P95 / P99 响应时间平均会掩盖长尾
慢查询慢 SQL 数量与占比定位性能劣化
复制复制延迟 / 落后字节影响读写分离一致性
资源CPU、内存、磁盘 I/O、磁盘空间磁盘写满是最常见事故
锁等待、死锁次数并发冲突的先行指标
缓存命中率、内存使用、淘汰数Redis 尤其关键
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Questions';
SHOW ENGINE INNODB STATUS\G
SELECT * FROM performance_schema.data_lock_waits;
SELECT count(*) FROM pg_stat_activity;
SELECT query, calls, mean_exec_time FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 10;
SELECT client_addr, state, replay_lsn FROM pg_stat_replication;
redis-cli INFO stats | grep -E 'instantaneous_ops|keyspace_hits|keyspace_misses'
redis-cli INFO memory | grep -E 'used_memory_human|mem_fragmentation_ratio'
redis-cli --bigkeys     # 扫描大 key
redis-cli --latency
Tip

监控的重点不是「看数据」而是「设阈值与告警」。为连接数、复制延迟、磁盘空间、慢查询数量设置明确的告警线,并确保告警能触达值班人,否则再全的监控也形同虚设。

容量规划

  • 磁盘:预留至少 30% 余量;关注增长率与数据归档策略。
  • 内存:MySQL 的 Buffer Pool、PG 的 shared_buffers、Redis 是内存消耗主力。
  • 连接:用连接池;按 QPS × 平均查询耗时 估算并发连接需求。
  • 增长:用历史数据估算增长曲线,提前规划扩容或分片。

备份策略

类型说明频率
全量备份完整数据副本每日/每周
增量/日志备份binlog / WAL / AOF持续
异地备份存到不同机房/对象存储每日
快照云盘/存储层快照按需

恢复目标

  • RPO(恢复点目标):最多容忍丢失多少数据(由备份频率决定)。
  • RTO(恢复时间目标):最多容忍中断多久(由恢复速度决定)。
# 逻辑备份
mysqldump --single-transaction --routines --triggers demo > demo.sql

# 恢复
mysql demo < demo.sql

# 物理备份(大库推荐)
# xtrabackup --backup --target-dir=/backup/full
pg_dump -Fc demo > demo.dump          # 自定义格式,支持并行恢复
pg_restore -d demo -j 4 demo.dump
Warning

mysqldump--single-transaction 才能在 InnoDB 上获得一致性快照且不锁表。恢复演练要定期做:把备份恢复到新实例并校验行数与关键数据,确认 RTO/RPO 达标。

在线数据迁移

停机迁移(简单)

停写 → 全量导出 → 导入目标 → 校验 → 切流量 → 开写

不停机迁移

适合大库与 7×24 业务,核心是全量 + 增量 + 校验 + 切换

  1. 全量导出源库快照,导入目标。
  2. 通过 CDC(binlog/WAL)持续同步增量到目标。
  3. 双写或灰度读,比对数据一致性。
  4. 在低峰期短暂停写,追平最后增量后切流量。
  5. 回滚预案:保留源库可回切。
工具场景
mysqldump / pg_dump小库、逻辑迁移
XtraBackup / pg_basebackup物理备份与迁移
Cannal / Debeziumbinlog/WAL CDC 同步
gh-ost / pt-online-schema-change大表在线 DDL
MongoDB mongomirror / mongodumpMongoDB 迁移
Warning

迁移前务必确认字符集、时区、排序规则、SQL 模式(sql_mode)、自增与序列的差异——这些是异构或跨版本迁移中最常见的「迁移成功但数据错误」的元凶。迁移后要抽样比对与全量校验。

小结

  • 监控要覆盖连接、吞吐、延迟、慢查询、复制、资源、锁与缓存,并配告警。
  • 备份需全量 + 增量 + 异地,且必须演练恢复;明确 RPO/RTO。
  • 在线迁移遵循「全量 + 增量 + 校验 + 切换 + 可回滚」。
  • 关注字符集、时区、排序规则等「隐形陷阱」。