0Pricing
Cloud & IT Cert Prep · 课时

无影响的 DR 测试

在隔离网络中执行测试故障转移,端到端验证恢复计划,测量实际 RTO,并记录需要修复的差距。

无影响的 DR 测试 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

DR 测试为何不可或缺

从未经过测试的灾难恢复计划只能算是一种假设。实际经验表明,DR 计划经常会暴露出配置漂移、自动化缺失、运行手册过时或启动时间超出预期等问题,而这些问题只有在测试条件下才会显现。定期 DR 测试是确保计划在最需要时能够正常运行的唯一方法。

测试故障转移功能

Test 故障转移是 Azure Site Recovery 内置的一项功能,可让您在不中断生产环境的情况下模拟故障转移。在测试故障转移期间,ASR 会在次要区域的隔离虚拟网络中创建已复制 VM 的副本。生产 VM 会继续在主要区域正常运行,因此不会对实际用户造成风险。

# Trigger a test failover for a recovery plan:
az site-recovery recovery-plan test-failover \
  --resource-group myRG \
  --vault-name myRecoveryVault \
  --name myRecoveryPlan \
  --failover-direction PrimaryToRecovery \
  --network-id '/subscriptions/.../virtualNetworks/testFailoverVNet'

隔离测试环境

隔离的测试 VNet 不得与生产系统建立连接。这样可以防止测试 VM 意外写入生产数据库、向真实客户发送电子邮件或触发支付交易。请创建专用的测试故障转移 VNet,不与生产 VNet 建立对等互连,也不提供互联网访问,然后仅将其用于 DR 演练。

# Create an isolated test VNet for DR drills:
az network vnet create \
  --resource-group drRG \
  --name testFailoverVNet \
  --address-prefix 10.99.0.0/16 \
  --subnet-name testSubnet \
  --subnet-prefix 10.99.1.0/24
# NOTE: Do NOT peer this VNet to any production VNet

DR 测试期间需要验证的内容

DR 测试应验证一组明确的标准:

  • 启动时间——所有 VM 是否都能在预期时间窗口内启动?
  • 应用启动——连接到恢复的数据库后,应用是否能正确初始化?
  • 数据完整性——恢复点的数据是否一致且完整?
  • Actual RTO——测量从触发故障转移到应用开始处理请求所经过的总时间
  • 运行手册执行情况——所有自动化脚本是否都成功完成?

测量 Actual RTO

测试期间,请在触发测试故障转移的瞬间启动计时器。当确认应用运行正常时停止计时(负载均衡器运行状况探测返回 200 OK)。这就是您的实际 RTO。请将其与目标 RTO 进行比较。如果实际值超过目标值,请找出瓶颈所在——例如 VM 启动缓慢、数据库初始化时间过长或 DNS 传播延迟——并加以解决。

# During DR test, record timestamps:
# T0: Test failover triggered
# T1: All VMs in group 1 (database) running
# T2: All VMs in group 2 (app tier) running
# T3: All VMs in group 3 (web tier) running
# T4: Health probe returns 200 OK on all instances
# Actual RTO = T4 - T0
# Compare to target RTO, document any gaps

检查恢复点的数据

测试故障转移完成后,请连接到恢复的数据库并验证数据。检查复制截止点之前已提交的事务是否存在,并确认部分提交的事务是否得到了正确处理(回滚或完成)。对于支持时间点还原 (PITR) 的数据库,请测试将数据库还原到特定时间戳,并验证预期的数据状态。

# Example data verification after test failover:
# 1. Connect to recovered database
# 2. Run: SELECT COUNT(*) FROM orders WHERE created_at > DATEADD(hour, -1, GETUTCDATE())
# 3. Compare count to production database count for the same window
# 4. Check for any orphaned records or constraint violations

测试故障转移后的清理工作

测试完成后,您必须清理测试故障转移资源,包括次要区域中的测试 VM、其磁盘和网络接口。Azure Site Recovery 在门户中提供了“清理测试故障转移”操作,可自动删除所有测试资源。忘记清理不仅会浪费资金,还会使过时的资源堆积在次要区域中。

# Trigger cleanup after test failover:
az site-recovery recovery-plan test-failover-cleanup \
  --resource-group myRG \
  --vault-name myRecoveryVault \
  --name myRecoveryPlan \
  --notes 'Test completed. RTO = 22 minutes. All checks passed.'

记录 DR 测试结果

每次 DR 测试后,请撰写一份测试报告,其中包括:测试日期和范围、达到的实际 RTO 和 RPO、列出验证项目及通过/失败状态的检查清单、发现的任何缺口或失败情况,以及计划采取的纠正措施。这份报告对于合规审计(ISO 27001、SOC 2、HIPAA)以及跟踪 DR 成熟度随时间的改进都很有价值。

DR 测试频率

行业最佳实践和合规框架通常要求至少每年进行 DR 测试,但许多组织会针对第 1 层工作负载每季度甚至每月进行测试。更频繁的测试可以更早发现配置漂移,并增强团队的信心和实战熟练度。请尽可能自动化测试设置和验证过程,以降低频繁测试所需的工作量。

使用 Azure Chaos Studio 进行弹性测试

Azure Chaos Studio 是一项托管式混沌工程服务,可让您向 Azure 资源注入受控故障,以测试应用的弹性。您可以关闭 VM、使区域发生故障、限制 CPU 速度或注入网络延迟,从而观察应用的行为。与标准 DR 演练不同,混沌工程测试的是应用在部分故障条件下能否平稳降级。

# Chaos Studio experiment: shut down a VM zone
# 1. Create a chaos experiment in the portal
# 2. Select fault: 'VM Shutdown'
# 3. Target: VMs in Zone 1
# 4. Duration: 10 minutes
# 5. Observe: Does Traffic Manager reroute to Zone 2?
# 6. Check: Application health during and after the fault

持续改进 DR 的循环

DR 测试作为持续改进循环的一部分时最有价值:规划 → 执行 → 测量 → 修复 → 重复。每次测试后,请解决发现的缺口,更新运行手册和文档,然后再次测试。随着时间推移,您声明的 RTO/RPO 目标与实际达到的数值之间的差距应逐渐缩小,直到您能够始终在容差范围内通过每次测试。

快速检查

请测试您对本课 Microsoft Azure Fundamentals (AZ-900) 概念的理解。

课程回顾

本课介绍了:测试故障转移通过在隔离的 VNet 中创建 VM 副本,让您可以在不中断生产环境的情况下模拟 DR 事件;您必须在测试期间测量实际 RTO 并验证数据完整性;每次演练后,您还应清理测试资源并记录结果。接下来,我们将专门探讨 Azure SQL Database 等 PaaS 服务的灾难恢复。

常见问题解答

「无影响的 DR 测试」课时是免费的吗?

是的 — 「无影响的 DR 测试」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「无影响的 DR 测试」这节课中我会学到什么?

在隔离网络中执行测试故障转移,端到端验证恢复计划,测量实际 RTO,并记录需要修复的差距。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「无影响的 DR 测试」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 定义 RTO、RPO 和恢复层级
  2. 恢复计划与自动故障转移
  3. 无影响的 DR 测试
  4. PaaS 服务的 DR
← 返回 Cloud & IT Cert Prep