MySQL 提供了多种备份工具,适用于不同场景(如全量备份、增量备份、逻辑备份、物理备份等)。以下是常用的 MySQL 备份工具及使用方法:
mysqldump
是 MySQL 自带的命令行工具,适用于逻辑备份(生成 SQL 语句文件),支持单库、多库或全库备份,灵活性高。
mysqldump -u 用户名 -p 密码 db_name > backup_db.sql
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
mysqldump -u 用户名 -p 密码 db_name --ignore-table=db_name.table1 --ignore-table=db_name.table2 > backup_db.sql
mysql -u 用户名 -p 密码 db_name < backup_db.sql
mysql -u 用户名 -p 密码 < backup_all.sql
-
优点:跨平台、备份文件是 SQL 文本,可读性强,可编辑后恢复。
-
缺点:备份 / 恢复速度较慢,不适合超大型数据库。
mysqlpump
是 MySQL 5.7+ 新增的工具,在 mysqldump
基础上优化了并行备份能力,支持多线程备份,速度更快。
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
等工具)。
xtrabackup
是 Percona 公司开发的开源工具,适用于 InnoDB 引擎的物理备份(直接复制数据文件),支持全量备份和增量备份,速度极快。
sudo apt install percona-xtrabackup-80
sudo yum install percona-xtrabackup-80
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
xtrabackup --copy-back --target-dir=/backup/full
-
优点:备份 / 恢复速度快,支持增量备份,适合 TB 级大型数据库。
-
缺点:只支持 InnoDB 引擎,备份文件是二进制,可读性差。
mydumper
是一款第三方开源工具,支持多线程备份和恢复,速度优于 mysqldump
,适合中大型数据库。
sudo apt install mydumper
sudo yum install mydumper
mydumper -u 用户名 -p 密码 -B db_name -o /backup -t 4
myloader -u 用户名 -p 密码 -B db_name -d /backup -t 4
-
多线程备份,速度快,支持一致性备份。
-
备份文件按表拆分,便于单独恢复某张表。
-
Percona XtraBackup:如上述,适合大型生产环境。
-
MySQL Enterprise Backup:Oracle 官方企业版工具,支持加密备份、压缩等高级功能(收费)。
-
Navicat/PhpMyAdmin:图形化工具,适合手动备份小数据库(通过导出 SQL 功能)。
-
小型数据库:用
mysqldump
定期全量备份(如每日一次)。
-
中大型数据库:用
xtrabackup
或 mydumper
,结合「全量 + 增量」备份(如每周全量,每日增量)。
-
关键数据:备份后验证文件完整性,定期测试恢复流程。
-
自动化:通过
crontab
(Linux)或任务计划(Windows)定时执行备份脚本。
根据数据库规模和业务需求选择合适的工具,确保数据安全。