1.1 备份类型
按照服务器运行状态划分:热备份、温备份、冷备份
- 热备份:备份过程中,数据库可读、可写,业务不受影响
- 温备份:备份期间数据库只允许读操作,写入操作被限制
- 冷备份:离线备份,数据库服务停止,读写操作全部中止
按照备份对象划分:物理备份、逻辑备份
- 物理备份:直接复制数据库底层数据文件、日志文件
- 逻辑备份:把库、表、数据导出为 SQL 文本文件
按照数据收集范围划分:完全备份、增量备份、差异备份
- 完全备份(全量备份):备份数据库全部数据,作为恢复基准
- 增量备份 :仅备份上一次完全备份或者上一次增量备份之后新增 / 变更的数据
- 差异备份 :仅备份上一次完全备份之后所有变更的数据
简单区分增量与差异: 增量:每次只跟上一次备份对比;差异:每次都跟最近一次全备对比。
1.2 逻辑备份优缺点
备份速度受存储引擎影响;物理备份还原速度更快。 ✅ 优点
- 导出内容是 ASCII 文本,可以直接用文本工具查看、修改
- 跨版本、跨平台兼容性强
- 能够精细到库、表级别备份,数据可控,安全性较好
❌ 缺点
- 备份时会对 MySQL 服务器产生额外 CPU、IO 压力;物理裸备份压力更小
- 导出后的 SQL 文件体积往往比原始数据文件更大,一般会搭配压缩使用
- 浮点数类型数据,导出恢复后有可能丢失精度
1.3 备份内容清单
备份数据库不能只备份表数据,完整备份需要包含:
- 数据文件
- 日志文件(redo log、undo log、binlog 二进制事务日志等)
- 存储过程、存储函数、触发器、事件
- MySQL 配置文件(my.ini/my.cnf,非常关键)
- 配套脚本:备份脚本、日志清理脚本、定时任务 crontab 等
1.4 备份工具介绍
1.4.1 mysqldump(MySQL 官方自带,逻辑备份工具)
mysqldump 是 MySQL 自带逻辑备份工具,中小型数据库首选,支持全量备份; 备份策略参考:首次做一次全量备份,搭配 binlog 实现增量恢复;周期上每周一次全备,每日增量。
语法说明
# 全库备份
mysqldump -u用户名 --password=密码 -A > 备份文件.sql
# 指定库、指定表备份
mysqldump -u用户名 --password=密码 数据库名 表1 表2 > 备份文件.sql
示例 1:mysqldump 全库备份与恢复(Windows)
注意:在 CMD 命令提示符执行,不推荐 PowerShell;备份存放盘符建议和 MySQL 数据目录同盘,否则容易出现拒绝访问
# 全库备份
C:\Users\Administrator> mysqldump -u root --password=123456 -A > C:\back1.sql
警告提示:
Using a password on the command line interface can be insecure.含义:命令行明文携带密码不安全,生产环境不建议这么写。
模拟故障、恢复测试:
mysql>\q
C:\Users\Administrator> mysql -uroot -p
Enter password: ******
-- 模拟删库
mysql> drop database mydb1_test;
mysql> drop database mydb2_stuinfo;
-- 查看库列表确认删除
mysql> show databases;
-- 执行全库恢复
mysql> source C:\back1.sql
示例 2:指定数据库局部备份与恢复
# 备份单个库,-B 参数会自动携带建库语句
C:\Users\Administrator> mysqldump -u root --password=123456 -B mydb1_test > C:\back2.sql
恢复操作:
C:\Users\Administrator> mysql -uroot -p
Enter password: ******
mysql> drop database mydb1_test;
-- 恢复:使用-B备份出来的文件可以直接source,不需要手动建库;
-- 如果不加-B导出,恢复前必须手动创建数据库并use切换
mysql> create database mydb1_test;
mysql> use mydb1_test;
mysql> source C:\back2.sql
-- 校验
mysql> show tables;
mysql> select * from t1;
1.4.2. 文件系统级物理备份工具 cp
属于冷备份,数据库必须停止,直接复制数据目录文件,所有存储引擎都支持。 优点:备份、还原速度极快; 缺点:灵活性差,跨平台能力弱,必须停机。
1.4.3. LVM 快照备份
近乎热备的物理备份方案,基于 LVM/ZFS 快照实现,几乎不停机。 原理:创建数据卷快照,快照瞬间完成,仅会短暂阻塞数据库几秒;之后复制快照文件。 限制:数据目录、日志文件必须放在同一个 LVM 逻辑卷,不能跨多个 LV 同时快照;ZFS 可以解决多卷快照问题。 优点:速度快,恢复快;缺点:弹性差,依赖底层存储。
1.4.4. 其他商用 & 开源备份工具
- ibbackup:商业工具,MyISAM 为温备,InnoDB 支持热备,价格昂贵,单服务器授权 5000 美元
- xtrabackup(Percona XtraBackup):开源免费,ibbackup 替代方案,MyISAM 温备、InnoDB 热备,生产大量使用
- mysqlbackup:Oracle 官方企业版备份工具 MySQL Enterprise Backup
总结对比表
| 工具 | 备份类型 | InnoDB | MyISAM | 特点 |
|---|---|---|---|---|
| mysqldump | 逻辑备份 | ✅ 支持 | ✅ 支持 | 自带、简单,适合小库,速度偏慢 |
| cp | 物理冷备 | ✅ 支持 | ✅ 支持 | 停机复制,快,只能冷备 |
| LVM 快照 | 物理近乎热备 | ✅ 支持 | ✅ 支持 | 秒级快照,短时间锁库,依赖 LVM |
| xtrabackup | 物理备份 | ✅ 热备 | 温备 | 开源,企业主流中大型库备份 |
| ibbackup | 物理备份 | ✅ 热备 | 温备 | 商业收费 |
| mysqlbackup | 物理备份 | ✅ 热备 | 温备 | Oracle 官方企业工具 |