《MySQL 定时备份实战:mysqldump + cron 的可靠组合》
数据库丢了比服务器宕机更可怕:服务可以重启,数据丢了就真的没了。给 MySQL 做定时备份并不复杂,mysqldump 加 cron 就能搭一套够用的方案。
先写一条备份命令:mysqldump -u root -p --single-transaction --routines --triggers mydb > /backup/mydb_$(date +%F).sql。--single-transaction 让 InnoDB 表在不锁表的情况下拿到一致性快照,--routines 和 --triggers 把存储过程和触发器也带上,文件名带上日期方便按天区分。
密码不要写在命令行里,会留在 shell 历史和进程列表中。把账号密码写进 ~/.my.cnf,权限设为 600,命令里就不用再写 -p,cron 跑起来也更安全。
再用 cron 定时执行:每天凌晨 3 点跑一次,0 3 * * * /usr/local/bin/backup-mysql.sh。备份脚本里顺手做两件事:一是校验文件大小,非空才算成功;二是删除 7 天前的旧备份,只保留最近一周,find /backup -name "*.sql" -mtime +7 -delete。
备份做完不等于能恢复。每月至少做一次恢复演练:把备份文件导入一台测试库,确认能正常建表、数据行数对得上。只备份不验证,等于没备份。
这套组合成本几乎为零,却能挡住误删表、误操作和磁盘故障这些最常见的事故。先跑起来,再慢慢加异地同步和加密也不迟。
- 点赞
- 收藏
- 关注作者
评论(0)