本文将详细介绍 MySQL 数据备份与恢复的相关知识点。
1. 备份类型
- 逻辑备份:导出数据库的逻辑结构,以
SQL语句
的形式呈现,可读性强。适用于小数据量或跨版本迁移。常见工具包括mysqldump
、mysqlpump
、mydumper
。其特点是兼容性好,但备份和恢复速度较慢,支持单表、单库或全库备份。 - 物理备份:直接复制数据库的
物理文件
,如数据文件、日志文件。备份和恢复速度快,适合大数据量。 - 增量备份:仅备份自上次全量或增量备份后的变更数据。适用于大数据量且每日变更较少的场景,常用工具为
XtraBackup
,基于 InnoDB 的 LSN 日志。
2. 备份策略设计
- 全量备份 + 增量备份:每周进行一次全量备份,每日进行一次增量备份。恢复时,先恢复全量备份,再应用所有增量备份,最后恢复未备份的 Binlog。
- Binlog 备份:结合全量备份可实现时间点恢复。需确保开启 Binlog(
log_bin=ON
)。
3. 恢复方法
- 逻辑备份恢复:使用
mysql
命令执行备份文件中的 SQL 语句进行恢复。 - 物理备份恢复:以
XtraBackup
为例,需要先准备备份数据,再将文件复制到 MySQL 数据目录。 - 时间点恢复(PITR):在误操作等场景下,可恢复到误操作前的状态。先恢复最近的全量备份,再应用 Binlog 到误操作前的时刻。
4. 备份工具对比
工具 | 类型 | 特点 |
---|---|---|
mysqldump | 逻辑备份 | 兼容性好,支持单表备份,速度慢,适合小数据量。 |
mydumper | 逻辑备份 | 多线程备份,效率高,支持并行导出和压缩。 |
XtraBackup | 物理备份 | 热备份,支持增量备份,适合大数据量,恢复速度快。 |
MySQL Shell | 逻辑/物理 | 8.0+ 支持,可并行备份(util.dumpInstance() ),集成度高。 |
5. 逻辑备份
# 备份整个数据库
mysqldump -u root -p --databases shop_db > shop_db_backup.sql
# 仅备份表
mysqldump -u root -p shop_db orders > orders_backup.sql
6. 恢复
# 逻辑备份恢复整个数据库
mysql -u root -p shop_db < shop_db_backup.sql
# 逻辑备份恢复单表
mysql -u root -p shop_db -e "source orders_backup.sql"
← 上一篇 Java进阶——常用类及常用方法详解 |
记得点赞、关注、收藏哦!
|
下一篇 Java进阶——数组超详细整理 → |