目录

MySQL进阶数据备份与恢复超详细

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

本文将详细介绍 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"
记得点赞、关注、收藏哦!