1.
- 明确RTO(恢复时间目标)和RPO(恢复点目标);举例:RTO 30分钟、RPO 15分钟;
- 列出关键组件(ECS+镜像、系统盘、OSS对象存储、RDS/数据库、SLB、DNS);
- 决定灾备模式:热备/暖备/冷备(推荐跨地域暖备:资源预配、数据近实时复制,保留最少运行配置以节省成本)。
2.
- 在日本地域创建VPC、子网、路由表、安全组,端口与安全策略与主区一致;
- 若需要私网通信可建立VPN网关或Express Connect专线,或使用VPC对等(同账号跨地域需检查支持);
- 预先配置安全组规则(放行应用端口、管理端口仅限白名单)。
3.
- 在源实例上执行:先停止或使用一致性快照(若Linux可冻结I/O),使用控制台或aliyuncli创建镜像:CreateImage;
- 在控制台->镜像->选择镜像->复制镜像到日本地域(CopyImage),或使用API/CLI复制;
- 在日本机房从复制的镜像创建ECS实例,配置相同镜像/规格、挂载数据盘并恢复快照;
- 为数据盘使用快照策略:CreateSnapshot -> CopySnapshot到目标地域;必要时用ossutil迁移大文件。
4.
- 开启源Bucket的版本控制并创建Replication规则:控制台OSS->源Bucket->复制规则;指定目标Bucket(日本地域),授权系统角色;
- 配置筛选(前缀/标签)和同步策略(是否复制已有对象,如需一次性同步用ossutil cp或osscmd递归拷贝);
- 验证:上传测试文件到源Bucket,检查目标Bucket是否在几分钟内出现;确保ACL与生命周期策略在目标Bucket正确配置。
5.
- 对于RDS(MySQL/PolarDB等)优先使用自带的跨地域备份或只读副本;若不可用,使用DTS(数据传输服务)做全量+增量复制;
- DTS操作步骤:控制台->数据传输->创建任务->选择源库(填写ID、账号、IP/端口)、目标库(日本RDS实例);进行权限检测并创建目标库用户;
- 启动全量+增量任务,等待全量同步完成;在切换前停止应用写入或启用短暂停写窗口以保证一致性;
- 切换时修改应用数据库连接指向目标RDS地址或使用读写分离中间件进行切换。
6.
- 在日本地域预建SLB(负载均衡)并将日本后端ECS加入后端服务器组,配置健康检查;
- 将域名DNS(建议使用阿里云DNS)记录的TTL设置为低值(例如60秒)提前生效;
- 灾难发生时:1) 确认日本后端健康;2) 在DNS控制台修改A/AAAA或CNAME指向日本SLB;3) 若需要立即,配合CDN或全局流量管理(GTM)做权重切换。
7.
- 编写恢复Runbook:明确联系人、步骤(封写入点->切换数据库->启动服务->验证);每一步写出控制台或CLI具体命令示例;
- 定期演练(季度或半年):从故障模拟到切换验证,记录时间并优化RTO/RPO;
- 监控与告警:在CloudMonitor配置健康检查、日志审计与费用监控,演练后复盘并更新文档。
8.
问:对于TB级别数据库,如何做初始迁移和后续增量以满足RPO?
答:先使用物理备份或逻辑导出+离线传输(例如先做备份文件上传到OSS再在目标恢复),然后启用DTS进行全量校验后切换到增量复制。若网络带宽受限,可先做一次离线快照运送再做增量同步,RPO由增量同步窗口决定。
9.
问:是否有无感知切换的最佳实践?
答:使用读写分离或中间件(如Proxy)可以提前把只读流量导向目标;在切换前把应用设为只读或短暂停写,完成数据库最后一批增量同步后切换DNS并逐步恢复写入。低TTL+负载均衡合并健康检查可以缩短切换时间。
10.
问:如何在控制成本下保证恢复能力?
答:采用暖备策略:只在目标地域保留镜像、快照、目标Bucket和少量按需实例;使用自动化脚本或Terraform保留基础资源模板,真正恢复时按脚本自动创建实例;对非关键数据采用长期归档策略,关键数据保持近实时复制。