1. 备份策略与目标定义
目的:定义RTO(恢复时间目标)与RPO(恢复点目标)。
步骤:1) 列出关键数据(网站文件/数据库/配置)。2) 为每类数据设定备份频率(数据库:每日或每小时;网站文件:每日或实时同步;配置:变更时备份)。3) 决定保留策略(7天/30天/长期归档)。
要点:分类备份可降低成本与恢复复杂度,先写下流程并在文档中明确责任人。
2. 使用ECS磁盘快照(Snapshot)做点-in-time备份
控制台操作:ECS控制台 → 云盘 → 快照管理 → 创建快照;填写名称与说明并选择目标云盘。
自动化:创建快照策略(Snapshot Policy),绑定到云盘,设置周期(每天/每小时)与保留周期。
验证:从快照创建云盘并挂载到临时实例,检查文件完整性与应用是否能启动。
3. 将快照转为镜像/自定义镜像备份系统盘
步骤:ECS控制台 → 实例/镜像 → 制作镜像(Create Image),选择包含数据盘或系统盘。
应用场景:快速恢复整台机器(包括配置与已安装的软件)。恢复时用镜像直接创建新实例以节省装配时间。
注意:镜像会占用更多存储,控制保留数量或转存OSS归档。
4. 使用OSS做异地对象存储备份(推荐长期与跨区域)
步骤(示例):1) 创建OSS Bucket(建议跨区域或在其他地域创建副本)。2) 本地打包并上传:tar/zip打包后使用ossutil或SDK上传。
命令示例:mysqldump压缩并上传:
mysqldump -u root -p'密码' --single-transaction --quick --lock-tables=false dbname | gzip > /backup/db_$(date +%F).sql.gz
ossutil cp /backup/db_$(date +%F).sql.gz oss://your-bucket/backup/hk/ --region=替换为RegionEndpoint
策略:开启OSS生命周期规则(归档/删除)与版本控制,节省成本并能恢复被误删文件。
5. 文件级实时/定时同步(rsync/rsnapshot/Unison)
方案:对网站根目录/上传目录使用rsync到异地备份服务器或对象网关。
命令示例(SSH):rsync -avz --delete /var/www/ backup@backup-host:/data/backup/www/ --progress
自动化:写shell脚本并添加到crontab(例如每天凌晨2点同步),并在脚本里记录日志与返回码以便报警。
6. 数据库备份的实操(MySQL为例)
全量与增量:全量使用mysqldump;大型库建议物理备份(xtrabackup)或启用binlog做增量恢复。
示例cron(每日):0 3 * * * /usr/local/bin/backup_db.sh >> /var/log/backup_db.log 2>&1
backup_db.sh内容要点:导出后校验文件完整性(gzip -t),上传到OSS,删除本地超过保留期的文件。
7. 使用阿里云Hybrid Backup Recovery(HBR)和云服务备份
简介:HBR支持跨地域、跨账号备份ECS、RDS等。
操作:在控制台开通HBR,创建备份凭证、任务并绑定需要备份的资源(ECS云盘/镜像/RDS快照)。
好处:集成管理、自动化、合规性日志,适合企业级方案。
8. 灾备演练与恢复步骤(Runbook)
恢复演练必须定期(建议季度)。演练步骤示例:1) 启动备用实例(或从镜像创建)。2) 挂载备份云盘或下载OSS备份并还原数据库。3) 修改DNS或负载均衡指向新实例。
检查点:应用能否访问、数据库一致性、日志是否完整。把演练结果写入报告并优化流程。
9. 自动化、监控与告警
做法:使用CloudMonitor监控ECS/云盘/OSS指标,设置备份失败邮件/短信告警。
自动化脚本:在脚本中返回非零退出码并触发告警API或发送企业微信/邮件。例如备份失败时调用阿里云短信或Webhook。
日志:所有备份任务写入集中日志系统,方便审计与回溯。
10. 灾备切换与DNS/流量管理实操
小步骤:1) 预先准备二级机房或云上容灾实例并保持同步(快照+rsync)。2) 使用阿里云DNS或GTM做流量切换,设置低TTL以便快速切换。3) 切换步骤:更新A记录或通过负载均衡更换后端IP。
验证:切换后检查会话、缓存、SSL证书是否正常并回滚机制要在Runbook中明确。
11. 常见问题:如何保证备份的完整性与加密?(问)
答:备份完整性通过校验(gzip -t、md5sum)与定期恢复演练验证;传输与存储使用HTTPS/SSL与服务端加密(OSS服务端加密或本地加密后上传)。建议对敏感数据在本地用AES加密后再上传,并在密钥管理上使用KMS。
12. 常见问题:如何实现RPO为小时级别?(问)
答:数据库开启binlog并实时将binlog发送到备库或通过工具(如maxwell/Canal)同步到异地;文件层采用实时同步工具(rsync+inotify或unison)或使用分布式存储;快照频率调为小时级并确保异地复制到OSS或备份站点。
13. 常见问题:恢复步骤不熟悉怎么办?(问)
答:编写详细Runbook并演练,Runbook包含每一步命令、负责人、联系方式与回滚步骤。建议用脚本自动化常用恢复流程(创建实例、挂载云盘、导入DB),并在版本控制中管理这些脚本与文档。
来源:vps香港服务器阿里云 数据备份与灾备方案实操指南