linux下mysql自动备份策略需按需组合逻辑备份与冷备份:逻辑备份用mysqldump定时导出sql并压缩清理,冷备份停库后tar打包数据目录,辅以权限控制、日志记录和定期验证。

Linux 下 MySQL 的自动备份策略,核心是选对类型、配好时机、守住安全。逻辑备份适合日常维护和跨版本迁移,冷备份则用于强一致性保障场景——两者不是非此即彼,而是按需组合使用。
逻辑备份:用 mysqldump 实现定时自动备份
逻辑备份导出的是 SQL 语句(建库、建表、INSERT),兼容性好、可读性强,适合中小型数据库或需要跨版本恢复的环境。
- 不硬写密码:创建 ~/.my.cnf,设置
[mysqldump]段,权限必须为600 - 脚本中调用
mysqldump dbname > file.sql,建议加--single-transaction(InnoDB)保证一致性 - 备份后立即压缩:
gzip ${BACKUP_FILE},节省空间且便于传输 - 配合 crontab 每日凌晨 1:30 执行:
30 1 * * * /home/backup/backup.sh - 自动清理旧文件:脚本末尾加
find $BACKUP_DIR -name "*.sql.gz" -mtime +15 -delete
冷备份:停库 + 文件拷贝,确保物理一致性
冷备份直接复制数据目录(如 /var/lib/mysql),速度快、恢复快,但要求数据库完全停止,适用于维护窗口期或首次初始化备份。
- 先停服务:
systemctl stop mysqld(确认无连接再执行) - 用
tar -czf打包整个数据目录,例如:tar -czf mysql_backup_$(date +%Y%m%d).tar.gz /var/lib/mysql - 备份前检查磁盘空间,避免 tar 中途失败;备份后校验 tar 包完整性(
tar -tzf xxx.tar.gz > /dev/null) - 恢复时,清空目标数据目录,解压覆盖,并重置权限:
chown -R mysql:mysql /var/lib/mysql - 建议每月一次全量冷备,与每日逻辑备份形成互补
关键细节不能跳过
无论哪种方式,以下三点直接影响备份可用性:
- 权限与路径:备份脚本运行用户需有 MySQL 配置读取权、数据目录读取权、备份目录写入权
- 日志记录:每次备份成功/失败都写入日志,包含时间戳、数据库名、文件大小、退出码
-
验证机制:每周随机抽一份备份,执行
mysql -e "source xxx.sql"或解压 tar 后ls -l校验结构
怎么选?看业务实际
高频更新、不能停机的生产库——优先逻辑备份 + binlog 增量;
数据量超百 GB、对恢复速度极度敏感——搭配 XtraBackup 热备,冷备仅作兜底;
测试环境或静态配置库——冷备份足够,简单可靠。











