Cloud SQL 容錯移轉錯誤參考資料

本頁說明使用容錯移轉 Cloud SQL 故障類型進行實驗時會發生什麼情況。

容錯移轉 Cloud SQL 故障的運作方式

「Failover Cloud SQL」故障會呼叫 Cloud SQL Admin API 中的 failover 方法,觸發 Cloud SQL 執行個體的高可用性 (HA) 容錯移轉。這項錯誤的目的是讓您測試服務的行為和復原能力,瞭解主要 Cloud SQL 執行個體在同一個地區內轉換至其他區域的待命執行個體時,服務會如何運作。

這項故障的目標是 Cloud SQL 執行個體。

實驗執行期間會發生的情況

實驗會經歷不同的狀態,而相關資源也會隨之變更。

資源

PREPARING

INJECTING

REVERTING

執行個體

升級高可用性待命執行個體

不適用

高可用性容錯移轉驗證和重試

Fault Injection Testing 後端會在啟動容錯移轉前執行驗證檢查,確保環境適合進行這項作業。這個程序會在 INJECTING 階段進行,也就是在將 sqladmin.instances.failover API 呼叫傳送至 Cloud SQL 控制層之前:

  • 系統會檢查 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 手動啟動另一次容錯移轉。