服务公告
数据库定时备份到远端存储:脚本模板与恢复演练
发布时间:2026-10-12 16:08
## 适用场景 数据库是网站最不能丢的资产,本机单份备份在磁盘故障、误删、入侵加密面前几乎不设防。可靠的基线做法是:定时导出、压缩加密、传到异机存放,并且定期演练恢复。备份脚本不用复杂,把每个环节做扎实比引入重型工具更稳。以下流程适用于顺云云服务器上的自建 MySQL,其他数据库思路一致。 ## 备份脚本模板 脚本做四件事:导出、压缩、校验、远端存放。 ```bash #!/bin/bash DATE=$(date +%F) DIR=/data/dbbackup mysqldump --single-transaction --routines --triggers \ -u backup -p'密码' mydb | gzip > $DIR/mydb_$DATE.sql.gz md5sum $DIR/mydb_$DATE.sql.gz > $DIR/mydb_$DATE.md5 rsync -a $DIR/mydb_$DATE.* backup-host:/data/dbbackup/ find $DIR -name "mydb_*" -mtime +14 -delete ``` --single-transaction 保证 InnoDB 导出一致性且不锁表;给备份专用账号只授读权限,别直接用 root;md5 与备份一起传走,恢复前先校验完整性;远端保留与本机一致的过期清理,十四天按业务节奏调整。脚本放进 /opt/scripts,crontab 定在凌晨低峰执行,输出重定向到日志。 ## 验证与恢复演练 备份体系唯一的硬标准是恢复演练。每季度抽一份远端备份,在测试机走完整流程:md5sum 校验通过,解压导入测试库,抽查关键表行数与最新记录时间,让应用连上测试库跑通核心功能。这一步验证的是整条链路——导出是否完整、压缩是否可用、传输是否无损、账号权限是否够。多数团队的第一次演练都会发现问题:密码过期、远端磁盘满、备份里漏了存储过程,演练的价值正在于此。把演练结果记录归档,出问题时你能报出的最有底气的一句话是:上月的备份已验证可恢复。 ## 注意事项 敏感数据库的备份文件传远端前考虑加密,压缩包配口令或用工具加密,避免备份成为新的泄露面。备份账号、远端凭据集中管理,密码轮换时脚本同步更新并立即触发一次手动备份验证。备份完成状态要可观测:脚本末尾判断上一步成败并输出结论,配合顺云控制台的磁盘与带宽监控,能看出备份窗口的负载影响。链条上任一环失败都应告警,静默失败比没有备份更危险。下一篇: 数据导出指引发布