MySQL 备份与恢复

type
status
date
slug
summary
tags
category
icon
password

一、备份类型全景图

分类维度
类型
特点
适用场景
备份结果
逻辑备份
生成SQL文件(如 .sql
跨版本迁移、小数据量
物理备份
拷贝数据文件(如 .ibd
大数据量、快速恢复
数据量
完全备份
备份全部数据
每周基准备份
增量备份
备份上次备份后的变化
每日备份,节省空间
差异备份
备份上次完全备份后的变化
平衡恢复速度与空间
服务状态
热备份
服务在线,无锁(需InnoDB)
24x7业务
温备份
服务在线,但锁表(MyISAM)
允许短暂只读
冷备份
服务停机
可接受停机时段
 
关键说明:
  • 增量备份:基于二进制日志(binlog)或 LSN(物理备份)
  • 物理备份:通常比逻辑备份更快,但可能不跨版本兼容
💡
备份策略:完全+增量
notion image
1)和上一次完全备份比,备份变化的数据 2)和上一次增量备份比,备份变化的数据
恢复时,必须按照顺序依次恢复
先恢复最近一次完全备份,按顺序依次恢复增量备份
💡
备份策略:完全+差异
notion image
1)和上一次完全备份比,备份变化的数据
恢复时,也必须按照顺序依次恢复
先恢复最近一次完全备份,直接恢复最后一次差异备份
实际生产时,做数据备份,需定期在测试环境中测试,避免数据损坏
page icon
做备份的永远是备份二进制文件

二、逻辑备份:mysqldump

1. 基本用法
2. 关键选项
选项
作用
--lock-all-tables
备份期间锁表(温备份)
--single-transaction
无锁备份(仅InnoDB,热备份)
--master-data=2
记录binlog位置(必选项!)
--routines
备份存储过程和函数
--triggers
备份触发器
注意
  • -master-data 在 MySQL 8.0 中已更名为 -source-data,但前者仍可用
  • 生产环境推荐使用 -single-transaction 替代 -lock-all-tables(避免锁表)
3. 备份策略示例(完全+增量)
4. 恢复流程
注意:sql_log_bin 仅对当前会话有效,恢复需在同一会话中完成!

三、物理备份:XtraBackup

1. 安装(CentOS 7)
2. 完全备份与恢复
3. 增量备份策略
4. 增量恢复流程

四、实战经验与误区纠正

1. 常见错误修正
  • 误区:增量备份可基于任意备份类型正解:增量备份必须基于上一次完全备份或增量备份(连续依赖)
  • 误区sql_log_bin 是全局设置正解:它是会话级变量,恢复需在同一连接中完成
2. 备份验证(重要!)
3. 自动化脚本示例
4. 监控与告警
  • 监控备份文件大小(避免0字节备份)
  • 检查备份时长(异常时长可能预示故障)
  • 定期恢复测试(确保备份可用)

五、备份策略推荐

场景
策略
工具
小型数据库
每周完全 + 每日逻辑增量
mysqldump
大型数据库
每周完全 + 每日物理增量
XtraBackup
云环境
快照备份 + binlog
云平台工具
跨版本迁移
逻辑完全备份
mysqldump
黄金法则:
  1. 永远验证备份完整性
  1. 3-2-1规则:3份副本,2种介质,1份离线
  1. 定期恢复演练
Loading...