MySQL进阶——数据备份与恢复(超详细!!!)

发布于:2025-03-16 ⋅ 阅读:(17) ⋅ 点赞:(0)

        本文将详细介绍 MySQL 数据备份与恢复的相关知识点。

1. 备份类型

  • 逻辑备份:导出数据库的逻辑结构,以SQL语句的形式呈现,可读性强。适用于小数据量或跨版本迁移。常见工具包括 mysqldumpmysqlpumpmydumper。其特点是兼容性好,但备份和恢复速度较慢,支持单表、单库或全库备份。
  • 物理备份:直接复制数据库的物理文件,如数据文件、日志文件。备份和恢复速度快,适合大数据量。
  • 增量备份:仅备份自上次全量或增量备份后的变更数据。适用于大数据量且每日变更较少的场景,常用工具为 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进阶——数组超详细整理 →