mysql备份工具,常用的 MySQL 备份工具及使用方法

时间:2025-09-23 14:51

MySQL 提供了多种备份工具,适用于不同场景(如全量备份、增量备份、逻辑备份、物理备份等)。以下是常用的 MySQL 备份工具及使用方法:

1. mysqldump(官方推荐,逻辑备份)

mysqldump 是 MySQL 自带的命令行工具,适用于逻辑备份(生成 SQL 语句文件),支持单库、多库或全库备份,灵活性高。

常用命令

bash
# 备份单个数据库(如 db_name)
mysqldump -u 用户名 -p 密码 db_name > backup_db.sql

# 备份多个数据库(如 db1、db2)
mysqldump -u 用户名 -p 密码 --databases db1 db2 > backup_dbs.sql

# 备份所有数据库
mysqldump -u 用户名 -p 密码 --all-databases > backup_all.sql

# 备份数据库结构(不含数据)
mysqldump -u 用户名 -p 密码 --no-data db_name > backup_schema.sql

# 备份时排除某些表(如排除 db_name 中的 table1、table2)
mysqldump -u 用户名 -p 密码 db_name --ignore-table=db_name.table1 --ignore-table=db_name.table2 > backup_db.sql
 

恢复方法

bash
# 恢复单个数据库
mysql -u 用户名 -p 密码 db_name < backup_db.sql

# 恢复所有数据库(需先登录 MySQL 创建对应库)
mysql -u 用户名 -p 密码 < backup_all.sql
 

特点

  • 优点:跨平台、备份文件是 SQL 文本,可读性强,可编辑后恢复。
  • 缺点:备份 / 恢复速度较慢,不适合超大型数据库。

2. mysqlpump(mysqldump 增强版)

mysqlpump 是 MySQL 5.7+ 新增的工具,在 mysqldump 基础上优化了并行备份能力,支持多线程备份,速度更快。

常用命令

bash
# 并行备份所有数据库(4个线程)
mysqlpump -u 用户名 -p 密码 --all-databases --default-parallelism=4 > backup_all_pump.sql

# 备份指定数据库并压缩
mysqlpump -u 用户名 -p 密码 db_name | gzip > backup_db_pump.sql.gz
 

特点

  • 支持并行备份,效率高于 mysqldump
  • 支持压缩备份(结合 gzip 等工具)。

3. xtrabackup(Percona,物理备份)

xtrabackup 是 Percona 公司开发的开源工具,适用于 InnoDB 引擎物理备份(直接复制数据文件),支持全量备份和增量备份,速度极快。

安装

bash
# Ubuntu/Debian
sudo apt install percona-xtrabackup-80

# CentOS/RHEL
sudo yum install percona-xtrabackup-80
 

常用命令

bash
# 全量备份(备份到 /backup 目录)
xtrabackup --user=用户名 --password=密码 --backup --target-dir=/backup/full

# 增量备份(基于上次全量备份)
xtrabackup --user=用户名 --password=密码 --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/full

# 恢复全量备份(需先准备备份)
xtrabackup --prepare --target-dir=/backup/full
# 复制文件到 MySQL 数据目录(需先停止 MySQL)
xtrabackup --copy-back --target-dir=/backup/full
 

特点

  • 优点:备份 / 恢复速度快,支持增量备份,适合 TB 级大型数据库。
  • 缺点:只支持 InnoDB 引擎,备份文件是二进制,可读性差。

4. mydumper/myloader(多线程备份工具)

mydumper 是一款第三方开源工具,支持多线程备份和恢复,速度优于 mysqldump,适合中大型数据库。

安装

bash
# Ubuntu/Debian
sudo apt install mydumper

# CentOS/RHEL
sudo yum install mydumper
 

常用命令

bash
# 备份单个数据库(4个线程,备份到 /backup 目录)
mydumper -u 用户名 -p 密码 -B db_name -o /backup -t 4

# 恢复数据库(使用 myloader)
myloader -u 用户名 -p 密码 -B db_name -d /backup -t 4
 

特点

  • 多线程备份,速度快,支持一致性备份。
  • 备份文件按表拆分,便于单独恢复某张表。

5. 企业级工具

  • Percona XtraBackup:如上述,适合大型生产环境。
  • MySQL Enterprise Backup:Oracle 官方企业版工具,支持加密备份、压缩等高级功能(收费)。
  • Navicat/PhpMyAdmin:图形化工具,适合手动备份小数据库(通过导出 SQL 功能)。

备份策略建议

  1. 小型数据库:用 mysqldump 定期全量备份(如每日一次)。
  2. 中大型数据库:用 xtrabackup 或 mydumper,结合「全量 + 增量」备份(如每周全量,每日增量)。
  3. 关键数据:备份后验证文件完整性,定期测试恢复流程。
  4. 自动化:通过 crontab(Linux)或任务计划(Windows)定时执行备份脚本。
根据数据库规模和业务需求选择合适的工具,确保数据安全。
MySQL处理中文排序,除了拼音还能怎么办?一文掌握拼音与笔画排序的所有奥秘
一小时速通MySQL:零基础入门到精通,看这篇就够了(下篇)
一小时速通MySQL:零基础入门到精通,看这篇就够了(上篇)
MySQL小白下载指南 (以 Windows 为例)
MySQL安装太难?看完这篇就够了!小白专属下载安装指南
MySQL清空表数据,你用DELETE还是TRUNCATE?一文讲清两者核心差异与正确使用场景
从查询崩溃到丝滑流畅:详解MySQL性能优化的核心路径与高频实战技巧
MySQL性能优化漫谈:从金字塔法则到避坑指南,一位老DBA的架构思维与实践总结
千万级数据何去何从?一文读懂MySQL分库分表面试与工程实践的核心要点
mysql2,用于与 MySQL 数据库进行交互