MySQL 备份与恢复(补充)
type
status
date
slug
summary
tags
category
icon
password
一、备份类型全景图
1.1 按备份结果分类
类型 | 特点 | 适用场景 | 工具 |
逻辑备份 | 生成SQL文件(.sql),可读性强 | 跨版本迁移、小数据量、数据结构变更 | mysqldump, mysqlpump |
物理备份 | 拷贝数据文件(.ibd, .frm),速度快 | 大数据量、快速恢复、同版本迁移 | XtraBackup, MySQL Enterprise Backup |
1.2 按数据量分类
类型 | 备份内容 | 恢复要求 | 空间占用 |
完全备份 | 所有数据 | 基础恢复点 | 大 |
增量备份 | 好上次备份后的变化 | 需要完全备份+所有增量备份 | 小 |
差异备份 | 上次完全备份后的变化 | 需要完全备份+最新差异备份 | 中等 |
1.3 按服务状态分类
类型 | 服务状态 | 锁情况 | 适用引擎 |
热备份 | 在线 | 无锁或短暂锁 | InnoDB(使用MVCC) |
温备份 | 在线 | 全局读锁 | MyISAM, InnoDB |
冷备份 | 离线 | - | 所有引擎 |
二、备份策略详解
2.1 完全+增量备份策略
2.2 完全+差异备份策略
三、逻辑备份:mysqldump 详解
3.1 基本用法
3.2 关键参数说明
参数 | 作用 | 注意事项 |
–all-databases | 备份所有数据库 | ㅤ |
–database | 备份单个数据库 | –database 数据库名称 |
-lock-all-tables | 锁表 | ㅤ |
--master-data=2 | 记录binlog位置 | =1时以注释形式记录,=2时以注释形式记录但不会执行 |
--single-transaction | 创建一致性快照 | 仅适用于InnoDB,与--lock-tables互斥 |
--routines | 备份存储过程和函数 | 需要PROCESS权限 |
--triggers | 备份触发器 | 默认已开启 |
--flush-logs | 备份前刷新日志 | 便于增量备份 |
--hex-blob | 二进制数据以16进制存储 | 避免编码问题 |
注意
-master-data在 MySQL 8.0 中已更名为-source-data,但前者仍可用
- 生产环境推荐使用
-single-transaction替代-lock-all-tables(避免锁表)
3.3 备份策略实例
1. 备份策略示例(完全+增量)
2. 恢复流程
注意:sql_log_bin 仅对当前会话有效,恢复需在同一会话中完成!
- 备份脚本示例
四、物理备份:XtraBackup 详解
4.1 安装与配置
4.2 完全备份与恢复
4.3 增量备份策略
4.4 增量恢复流程
五、备份验证与监控
5.1 备份完整性检查
5.2 监控指标
指标 | 正常范围 | 异常处理 |
备份大小 | 不应为0 | 检查备份命令和权限 |
备份时长 | 与历史值相比无剧烈变化 | 检查系统负载和网络 |
备份成功率 | 100% | 检查错误日志和存储空间 |
恢复测试 | 每月至少一次 | 验证备份可用性 |
六、实战经验与常见问题
6.1 常见问题解决
- 备份失败:权限不足
- 备份文件过大
- 增量备份中断
6.2 最佳实践
- 3-2-1规则:3份副本,2种介质,1份离线存储
- 定期验证:每月至少进行一次恢复测试
- 监控告警:设置备份失败和异常告警
- 文档记录:记录备份策略和恢复步骤
七、备份策略推荐表
场景 | 数据量 | 推荐策略 | 工具 | 恢复时间目标(RTO) |
小型网站 | <10GB | 每周完全+每日逻辑增量 | mysqldump | 1-2小时 |
中型业务 | 10-100GB | 每周完全+每日物理增量 | XtraBackup | 30-60分钟 |
大型系统 | >100GB | 每天物理增量+快照备份 | XtraBackup+存储快照 | 15-30分钟 |
云环境 | 任意 | 云平台备份+binlog | 云工具 | 5-15分钟 |
Loading...