mysql备份文件应存于独立挂载点如/backup/mysql/,确保隔离性与可访问性;须避开datadir、/tmp、/root等危险路径;需显式指定绝对路径并确认权限;--tab参数路径须符合secure_file_priv限制;本地压缩校验后再上传云存储;须配置定期清理策略。

避免磁盘满导致MySQL服务崩溃
系统盘(通常是/或C:\)除了运行OS和MySQL进程外,还承载日志、临时文件、swap等。一旦备份文件写入系统盘,尤其是全量备份动辄几十GB,极易触发磁盘空间告警甚至No space left on device错误——此时MySQL可能无法写入ib_logfile、binlog或临时排序文件,直接卡住或异常退出。
- MySQL在
innodb_log_file_size写满时需刷盘,若系统盘无空间,会阻塞所有DML -
mysqldump导出过程中生成的临时SQL文本(尤其未管道压缩时)也占系统盘空间 - Linux下
/tmp常挂载在根分区,mysqldump --tab等操作会额外占用此处空间
分离I/O压力,防止备份拖慢线上业务
备份是高IO密集型操作:mysqldump持续读表、xtrabackup顺序扫描数据文件、gzip压缩消耗CPU。若与MySQL数据目录共用同一块物理盘(尤其是机械盘或低配SSD),读写头频繁切换会导致:
- InnoDB缓冲池命中率下降,查询响应变慢
- Redo log刷盘延迟升高,事务提交变卡
- 主从复制延迟(如果备库也在同一盘上)
将备份目标路径设为独立挂载点(如/backup挂载到另一块SSD),能彻底隔离负载。
提升恢复安全性与可维护性
系统盘损坏或重装OS时,若备份也在其中,等于“把鸡蛋放在同一个篮子里”。生产环境必须确保:
- 备份路径不在
datadir所在文件系统内(避免rsync误删整个目录树) - 备份目录有独立配额和监控(例如用
df -h /backup单独告警) - 支持异地同步(如
rsync -av --delete /backup/ user@remote:/backup/),而系统盘通常不开放远程写入
真正容易被忽略的是:即使你用了--target-dir=/backup,也要确认该路径挂载的是独立物理设备,而非只是/backup目录软链接到/下的子目录——后者毫无意义。











