1. 概述与目标
目的:建立满足香港合规要求并可操作的备份与恢复流程。
范围:包含云服务器文件、数据库、块盘快照与对象存储备份。
要求:明确RPO(恢复点目标)与RTO(恢复时间目标),如RPO=1小时、RTO=2小时。
2. 合规与数据分级
步骤:1) 列出处理的个人数据、敏感数据;2) 根据PDPO及内部策略分类(公开、内部、敏感、高敏感);3) 对高敏感数据制定更严格的加密与备份保存策略。
操作:将数据清单记录到配置管理库(如Git或CMDB),并为每类设定保存期与访问控制。
3. 设计备份策略(RPO/RTO 映射)
步骤:1) 按服务组件(Web、DB、文件存储)制定备份频率;2) 确定备份类型:实时复制、增量备份、周期完整备份;3) 制订保留策略(如7天每日、30天每周、365天月度)。
示例:MySQL:每小时增量(binlog+差异备份),每日全备;文件:rsync 每15分钟同步到备份节点,夜间做tar.gz全量。
4. 文件系统备份的具体实施(Linux)
步骤与命令:1) 使用rsync增量备份到本地备份盘或同区域备份实例: rsync -a --delete /var/www/ backup@10.0.0.5:/data/backup/www/ ; 2) 定期打包全量并压缩: tar -czf /tmp/www-$(date +%F).tar.gz /var/www/ ; 3) 配置crontab: 15 * * * * /usr/bin/rsync -a --delete /var/www/ backup@10.0.0.5:/data/backup/www/ 。
验证:定期用diff或sha256sum比对源与备份文件完整性。
5. 数据库备份步骤(MySQL/Postgres)
MySQL:1) 热备方案:开启binlog并定期执行 mysqldump --single-transaction --master-data=2 -u root -p database > /backup/db-$(date +%F-%H%M).sql;2) 增量基于binlog归档并上传。
Postgres:pg_dump -Fc -U postgres mydb > /backup/mydb-$(date +%F).dump;定期执行pg_basebackup或使用WAL归档。
自动化:将脚本放入 /usr/local/bin/ 并用crontab或systemd timer定时运行,结果和错误通过邮件/Slack告警。
6. 云快照与卷备份(实例/块存储)
步骤:1) 在非高峰期触发磁盘快照,使用云厂商CLI(示例AWS):aws ec2 create-snapshot --volume-id vol-xxxx --description "daily-$(date +%F)"; 2) 对文件系统一致性,先对数据库执行flush/冻结或使用应用一致性工具;3) 设置快照生命周期策略(自动清理旧快照)。
注意:快照可快速恢复为新卷,但长期保存应导出到对象存储以节约成本。
7. 异地/跨区域备份与对象存储
步骤:1) 使用对象存储(S3/OSS)作为长期备份目标;2) 使用rclone/restic同步备份:restic -r s3:s3.hk-region.example.com/myrepo backup /var/www;3) 配置跨区域复制(CRR)或手动复制以满足数据驻留与冗余要求。
示例:rclone config / rclone sync /backup s3:bucket/backup --s3-region ap-east-1。
8. 备份加密与密钥管理
步骤:1) 传输层使用TLS;2) 备份文件使用工具自带加密(restic、borg)或对tar包使用gpg: gpg -c /tmp/backup.tar.gz;3) 推荐使用云KMS(Key Management Service)管理密钥并开启密钥轮换。
操作流程:restic init --repo s3:... --password-file /etc/restic/pass.txt;restic backup --repo ... --password-file ... /data。
9. 自动化、监控与告警
实施:1) 将备份任务纳入CI/CD或运维调度(Ansible、Terraform + cron/systemd);2) 监控成功率与备份大小,示例脚本检查最后备份时间并通过Prometheus告警或邮件通知;3) 建立失败自动重试与人工通知机制。
示例检查脚本:检查/backup/latest.timestamp,如果超过阈值则发送告警。
10. 恢复流程与演练步骤
恢复演练:1) 定期(至少季度)在隔离环境进行全量恢复演练;2) 演练步骤示例:创建新实例->挂载恢复卷->从快照或对象存储拉取备份->导入数据库->验证业务;3) 记录演练时间以评估RTO。
具体命令:restic restore latest --target /restore-dir;mysql -u root -p < /restore-dir/db.sql。
11. 日志、保留策略与合规记录
要求:将所有备份操作日志化并保存审计记录(谁、何时、何数据被备份/恢复)。
操作:启用云审计日志(CloudTrail/OSS日志),本地将脚本输出追加到集中日志系统(ELK/EFK)并按合规要求保留。
12. 故障排查要点与最佳实践
常见问题与解决:1) 备份失败:检查网络、权限、磁盘空间;2) 恢复慢:优先使用快照恢复卷再在线增量同步;3) 加密失败:检查密钥权限与KMS状态。
建议:保持自动化脚本幂等、备份路径和凭证在版本控制并定期更新。
13. 问答:合规角度最关键的点是什么?
问:在香港部署备份,合规角度最关键的点是什么?
答:明确数据分类与数据流向,保证敏感数据在传输与存储时加密、记录审计日志并满足PDPO的通知与访问要求,同时保证跨境传输有合法依据与合同保障。
14. 问答:如何保证异地备份既安全又可用?
问:如何在异地备份时兼顾安全与可用性?
答:采用端到端加密(restic/ borg /gpg + TLS)、KMS管理密钥、在不同可用区或区域保留副本;同时对备份进行定期恢复演练,验证可用性并设置跨区域复制与版本保留策略。
15. 问答:恢复演练频率与关键验证项有哪些?
问:建议的恢复演练频率和必须验证的项是什么?
答:建议每月至少进行一次关键服务的恢复演练、每季度进行一次完整环境恢复演练;验证项包括数据完整性校验、业务可用性(端到端请求)、RTO是否满足、权限与审计记录是否完备。
来源:合规与运维香港云服务器部署项目数据保护与备份方案