先说个真实案例。

2024 年 6 月,某电商公司网站被黑,数据库被删。老板问技术:"有备份吧?"技术说:"有。"结果恢复的时候发现,备份文件是坏的,根本用不了。

最后花了 3 天时间 manually 恢复数据,损失 200 多万。

备份不是做了就行,得确保真的能用。

今天分享 3 种备份方案,还有灾难恢复演练流程,帮你把风险降到最低。

 

备份什么?先搞清楚对象

网站备份不是备份一个东西,是备份多个:

1. 网站文件

  • 程序文件(PHP、JS、CSS 等)
  • 图片、视频等媒体文件
  • 配置文件(数据库连接、API 密钥等)

2. 数据库

  • 用户数据
  • 订单数据
  • 内容数据(文章、产品等)

3. 服务器配置

  • Nginx/Apache 配置
  • 防火墙规则
  • 定时任务

4. 域名和 SSL 证书

  • 域名管理账号
  • SSL 证书文件

很多人只备份网站文件,忘了数据库。结果恢复了网站,数据没了。

 

方案一:手动备份(适合小微企业)

成本:免费

难度:⭐⭐

适合:个人网站、小微企业官网

操作步骤:

1. 备份网站文件

# 通过 FTP 下载整个网站目录
# 或使用命令行打包
tar -czf website_backup_20260407.tar.gz /var/www/html
        

2. 备份数据库

# MySQL 数据库导出
mysqldump -u 用户名 -p 数据库名 > backup_20260407.sql

# 输入密码后,会生成 SQL 文件
        

3. 存储到本地

  • 下载到本地电脑
  • 或上传到网盘(百度网盘、Google Drive 等)

优点:

  • 免费
  • 简单易懂

缺点:

  • 容易忘记
  • 人工操作容易出错
  • 恢复时间长

建议频率:每周 1 次

 

方案二:自动备份脚本(适合中小企业)⭐ 推荐

成本:免费 + 云服务器存储费用(约 50 元/月)

难度:⭐⭐⭐

适合:中小企业官网、电商网站

操作步骤:

1. 编写备份脚本

#!/bin/bash
# backup.sh

# 设置变量
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
WEB_DIR="/var/www/html"
DB_NAME="数据库名"
DB_USER="用户名"
DB_PASS="密码"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份网站文件
tar -czf $BACKUP_DIR/website_$DATE.tar.gz $WEB_DIR

# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/database_$DATE.sql

# 压缩数据库
gzip $BACKUP_DIR/database_$DATE.sql

# 删除 7 天前的备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

echo "备份完成:$DATE"
        

2. 设置定时任务

# 编辑 crontab
crontab -e

# 添加每天凌晨 2 点执行
0 2 * * * /bin/bash /root/backup.sh
        

3. 同步到远程服务器

# 用 rsync 同步到备份服务器
rsync -avz /backup/ user@backup_server:/remote_backup/
        

优点:

  • 自动执行,不会忘记
  • 可定制备份策略
  • 成本低

缺点:

  • 需要一定技术能力
  • 需要额外服务器存储

建议频率:每天 1 次

 

方案三:云备份服务(适合中大型企业)

成本:200-1000 元/月

难度:⭐⭐

适合:中大型企业、电商平台、SaaS 服务

推荐服务:

1. 阿里云云备份

  • 价格:0.15 元/GB/月
  • 功能:自动备份、增量备份、一键恢复
  • 优势:阿里云生态,集成度高

2. 腾讯云云备份

  • 价格:0.12 元/GB/月
  • 功能:自动备份、跨地域备份
  • 优势:价格便宜,性能好

3. 专业备份服务(如 Backupify、CodeGuard)

  • 价格:10-50 美元/月
  • 功能:网站 + 数据库 + 邮件全备份
  • 优势:专业备份,恢复快

优点:

  • 全自动,无需维护
  • 增量备份,节省空间
  • 一键恢复,速度快
  • 多地域存储,更安全

缺点:

  • 成本较高
  • 依赖第三方服务

建议频率:每天多次(每 4-6 小时)

 

3-2-1 备份原则

不管用哪种方案,遵循 3-2-1 原则:

3 份备份:至少保留 3 份数据副本
2 种介质:用 2 种不同的存储介质
1 个异地:至少 1 份备份存放在异地
        

示例:

  • 本地服务器 1 份
  • 云存储 1 份
  • 移动硬盘 1 份(存放在公司以外)

 

灾难恢复演练流程

备份做了,得验证能不能用。建议每季度做一次恢复演练。

演练步骤:

1. 准备测试环境

  • 准备一台测试服务器(可以和生产环境配置不同)
  • 安装相同版本的程序(WordPress、dedecms 等)

2. 恢复备份

# 1. 恢复网站文件
tar -xzf website_backup_20260407.tar.gz -C /var/www/test

# 2. 恢复数据库
mysql -u 用户名 -p 数据库名 < database_backup_20260407.sql

# 3. 修改配置(数据库连接等)
# 编辑配置文件,指向测试数据库
        

3. 验证恢复

  • 网站能否正常访问?
  • 后台能否登录?
  • 数据是否完整?(随机抽查文章、产品、用户数据)
  • 功能是否正常?(表单提交、搜索等)

4. 记录演练结果

【演练日期】2026-04-07
【备份日期】2026-04-06
【恢复用时】35 分钟
【验证结果】
- 网站访问:✅ 正常
- 后台登录:✅ 正常
- 数据完整:✅ 正常
- 功能测试:✅ 正常
【问题记录】无
【改进建议】无
        

5. 优化备份策略

  • 如果恢复时间太长 → 优化备份方式
  • 如果数据不完整 → 检查备份内容
  • 如果步骤太复杂 → 编写恢复文档

 

恢复时间目标(RTO)和恢复点目标(RPO)

这两个指标帮你确定备份策略:

RTO(Recovery Time Objective):能接受多长时间内恢复?

  • 4 小时:需要云备份 + 一键恢复
  • 24 小时:自动备份脚本够用
  • 72 小时:手动备份可以接受

RPO(Recovery Point Objective):能接受丢失多少数据?

  • 1 小时:需要每小时备份
  • 24 小时:每天备份一次
  • 7 天:每周备份一次

根据业务重要性确定 RTO 和 RPO,然后选择对应的备份方案。

 

备份检查清单

【备份内容】
□ 网站文件(程序 + 图片 + 配置文件)
□ 数据库(用户 + 订单 + 内容数据)
□ 服务器配置(Nginx+ 防火墙 + 定时任务)
□ 域名和 SSL 证书

【备份策略】
□ 备份频率(每天/每周)
□ 保留周期(7 天/30 天/90 天)
□ 存储位置(本地 + 云端 + 异地)
□ 加密存储(敏感数据加密)

【恢复验证】
□ 每季度恢复演练
□ 记录恢复用时
□ 验证数据完整性
□ 更新恢复文档

【安全管理】
□ 备份文件加密
□ 访问权限控制
□ 定期修改备份账号密码
□ 备份日志监控

最后说两句

备份这事儿,平时觉得没用,等出问题了就是救命稻草。

别等数据丢了才后悔,今天就开始做备份。

记住:备份 + 恢复演练,缺一不可。

(如果需要备份方案咨询或协助配置,可以联系我们,免费提供一次备份健康检查)

网站备份怎么做?3 种方案 + 灾难恢复演练

2026-05-02