Cloud SQL 故障切换故障参考

本页介绍在具有故障切换 Cloud SQL 故障类型的实验期间会发生什么情况。

故障切换 Cloud SQL 故障的工作原理

故障切换 Cloud SQL 故障通过调用 Cloud SQL Admin API 中的 failover 方法,为 Cloud SQL 实例触发高可用性 (HA) 故障切换。此故障的目的是让您测试当主 Cloud SQL 实例转换到同一区域内另一个地区的备用实例时,服务的行为和弹性。

此故障的目标是 Cloud SQL 实例。

实验执行期间会发生什么

随着实验进入 各个状态, 所涉及的资源会发生以下变化。

资源

PREPARING

INJECTING

REVERTING

实例

提升 HA 备用实例

不适用

HA 故障切换验证和重试

Fault Injection Testing 后端会在启动故障切换之前执行验证检查,以确保环境适合。此过程发生在 INJECTING 阶段,在向 Cloud SQL 控制平面发送 sqladmin.instances.failover API 调用之前:

  • 系统会检查 Cloud SQL 实例 状态是否为 RUNNABLE。如果实例在运行实验期间处于任何其他状态,Fault Injection Testing 会通知您。
  • 它会验证 cloudsql.googleapis.com/database/available_for_failover 指标是否为 TRUE

如果不满足这些条件,故障切换请求将排队等待重试。

处理故障

如果故障切换已在进行中或遇到错误:

  • 注入期间: 如果故障切换调用被 Cloud SQL 控制平面拒绝(例如,如果备用实例运行状况不佳),实验将进入 STOPPING 状态。
  • 故障切换后监控: 如果故障切换操作在预定的 10 分钟内未达到 DONE 状态,Fault Injection Testing 后端会查询操作错误,将实验移至 STOPPING 状态,并将实验标记为遇到错误。

Fault Injection Testing 依赖于 Cloud SQL 控制平面作为事实来源。如果备用实例运行状况不佳,控制平面会拒绝任何故障切换尝试。Fault Injection Testing 使用预检和状态监控来避免或报告这些故障,而不是在拒绝后尝试自动重试。

手动故障恢复

由于故障切换是一种有状态的更改,因此停止实验不会自动故障恢复到原始主实例(如 REVERTING 阶段中的“不适用”所示)。数据库将继续在辅助地区中运行。

如需在实验完成后将实例返回到其原始地区,您 必须使用 Google Cloud 控制台或 gcloud CLI 手动启动另一个故障切换。