服务器运维中,MySQL 备份是核心基础工作,一般根据业务规模和安全级别,采用逻辑备份 + 物理备份 + 备份策略组合。下面按实战常用方案给你系统讲清楚。
| 类型 | 说明 | 常用工具 |
|---|---|---|
| 逻辑备份 | 导出 SQL | mysqldump、mydumper |
| 物理备份 | 直接拷贝数据文件 | xtrabackup |
| 增量备份 | 只备份变化数据 | xtrabackup |
| 全量备份 | 完整数据 | mysqldump / xtrabackup |
✅ 生产环境推荐:xtrabackup 物理备份 + mysqldump 辅助
mysqldump -uroot -p \
--single-transaction \
--routines --triggers --events \
--all-databases > /backup/mysql_full_$(date +%F).sql
✅ 参数说明:
--single-transaction:InnoDB 不锁表--routines:存储过程--triggers:触发器--events:事件mysqldump -uroot -p db_name > /backup/db_name_$(date +%F).sql
mysql -uroot -p < /backup/mysql_full_2026-01-21.sql
⚠️ 缺点:
yum install percona-xtrabackup-80 -y
xtrabackup --backup \
--target-dir=/backup/xtra_full_$(date +%F) \
--user=root --password=密码
xtrabackup --prepare \
--target-dir=/backup/xtra_full_2026-01-21
systemctl stop mysqld
rm -rf /var/lib/mysql/*
xtrabackup --move-back \
--target-dir=/backup/xtra_full_2026-01-21
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
✅ 优点:
# 第一次全量
xtrabackup --backup --target-dir=/backup/full
# 增量
xtrabackup --backup \
--target-dir=/backup/inc1 \
--incremental-basedir=/backup/full
恢复时:
xtrabackup --prepare --apply-log-only --target-dir=/backup/full
xtrabackup --prepare --target-dir=/backup/full --incremental-dir=/backup/inc1
| 时间 | 操作 |
|---|---|
| 每天凌晨 | 全量备份 |
| 每 6 小时 | binlog 备份 |
| 每周 | 异地备份 |
find /backup -name "*.sql" -mtime +7 -delete
[mysqld]
log-bin=mysql-bin
server-id=1
cp /var/lib/mysql/mysql-bin.* /backup/binlog/
✅ 用于:
mysql -uroot -p -e "SHOW MASTER STATUS;"
✅ 定期检查:
❌ 只备份 SQL,不备份 binlog
❌ 备份目录权限不对
❌ 备份后不校验
❌ 备份放在同一台服务器
小库用 mysqldump,大库用 xtrabackup,binlog 必须开,备份一定要验证。
如果你愿意,我可以:
直接告诉我你的 MySQL 版本 + 数据量 + 是否主从 即可。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。