“我们有备份”,是我们接手网站时听到最多、也最不能直接相信的一句话。真到要恢复的时候,常见的情况是:备份只有数据库没有图片、备份放在同一台服务器上一起没了、备份文件三个月前就开始报错没人看、或者根本恢复不了。这篇文章讲一套中小企业网站可以直接落地的备份方案:备什么、多久备、放哪里、怎么验证。
一、网站备份要备什么
一个完整的网站备份至少包括四部分,缺一样就可能恢复不出来:
- 网站文件:程序代码、模板主题、插件,以及用户上传的图片、附件、视频。上传目录往往是最大也最容易被漏掉的部分。
- 数据库:文章、产品、用户、订单等所有动态内容都在数据库里。这是备份的核心。
- 配置文件:数据库连接信息(如 WordPress 的 wp-config.php)、Web 服务配置(Nginx/Apache 站点配置)、伪静态规则、SSL 证书文件。
- 环境信息:PHP 版本与扩展、数据库版本、定时任务、依赖的第三方服务配置。恢复到新服务器时靠这些还原环境。
二、多久备一次
取决于“丢一天数据能不能接受”。一般建议:
- 数据库:每天至少一次全量备份;有在线交易或频繁更新的网站,增加每小时增量备份或开启数据库二进制日志。
- 网站文件:每天一次增量备份(只备变化的文件),每周一次全量。
- 重大变更前:升级程序、改服务器配置、迁移之前,手动做一次完整备份。
保留策略建议“7 天每日 + 4 周每周 + 3 个月每月”,既能回到最近几天,也能找回一个月前的状态,存储成本可控。
三、放在哪:一定要异地
备份放在网站服务器本机,等于没备份。服务器被黑、磁盘损坏、误操作删库时,备份会跟着一起消失。最少做到“3-2-1”原则的简化版:
- 一份在本机(方便快速恢复)
- 一份在异地:对象存储(阿里云 OSS、腾讯云 COS 等)或另一台服务器
- 敏感数据加密后再上传,备份存储账号使用独立的、只有写入权限的密钥
四、怎么确认备份真的能用
这是最常被跳过的一步。三件事:
- 备份任务要有成功/失败通知:失败了当天就要知道,而不是三个月后发现全是 0 字节文件。
- 校验完整性:备份完成后检查文件大小、压缩包能否解压、数据库导出文件末尾是否完整。
- 定期恢复演练:每月至少一次,把备份恢复到测试环境,网站能打开、后台能登录、最近的数据都在,才算备份有效。
五、WordPress 网站的备份方案示例
以最常见的 WordPress 企业站为例,一套够用的方案:
- 服务器上用 mysqldump 每天凌晨导出数据库并压缩,用 rsync 增量同步 wp-content 目录
- 把当天的数据库备份和文件增量同步到对象存储,按保留策略自动清理旧备份
- 备份脚本结束后发送通知(成功/失败、文件大小)
- 每月在测试环境恢复一次,顺便验证程序升级
用宝塔面板的网站,也可以用面板自带的计划任务做数据库和目录备份并推送到云存储,但同样要检查通知和做恢复演练,不要只看“任务已创建”。
六、常见误区
- 只备数据库不备上传目录,恢复后全站图片丢失
- 云服务器的“快照”当唯一备份:快照方便但通常不长期保留,且和服务器绑在一个账号里
- 备份文件明文放在公开可访问的目录(例如网站根目录下的 backup.zip),成了泄露源
- 从未恢复过,第一次恢复就是事故当天
运维365 的网站维护托管把备份作为标配:每日数据库与文件备份、异地存储、成功失败通知、每月恢复演练。详见 网站维护服务。
