全部產品
Search
文件中心

PolarDB:自動/手動主備節點切換

更新時間:Dec 27, 2024

當系統發生故障時,PolarDB叢集會自動進行主備節點切換。您也可以手動進行主備切換,指定一個唯讀節點為新的主節點。

注意事項

不論是自動切換還是手動切換,當唯讀節點未開啟熱備時,主備切換過程中可能會出現約20~30秒的閃斷,因此在切換前請務必確保應用具備重連機制。當唯讀節點開啟了熱備功能時,主備切換將在5~10秒內完成。關於如何開啟唯讀節點的熱備功能,請參見設定熱備節點

重要

在某些極端情境下,主備切換過程中的閃斷時間可能會增加,但不會超過3分鐘。

自動主備切換

PolarDB叢集版採用雙活(Active-Active)的高可用叢集架構。當系統發生故障時,可讀寫的主節點和唯讀節點之間會自動進行故障切換(Failover),系統自動選舉新的主節點。

叢集中每個節點都有一個故障切換(Failover)優先順序,該優先順序決定了故障切換時每個節點被選舉為主節點的機率高低。當多個節點的優先順序相同時,則有相同的機率被選舉為主節點。

自動選舉主節點按以下步驟進行:

  1. 系統找出當前可以被選舉的所有隻讀節點。

  2. 選擇優先順序最高的一個或多個唯讀節點。

  3. 如果切換第一個節點失敗(例如,網路原因、複製狀態異常等),則會嘗試切換下一個,直至成功。

您可在叢集基本信息頁面的数据库节点地區,查看並設定叢集中每個節點的Failover優先順序。

優先順序

說明
  • 當唯讀節點未開啟熱備功能時,主備切換過程中可能會出現約20~30秒的閃斷,因此切換前請務必確保應用具備重連機制。

  • 當唯讀節點開啟熱備功能時,主備切換將在5~10秒內完成。

  • 在某些極端情境下,主備切換過程中的閃斷時間可能會增加,但不會超過3分鐘。

手動主備切換

您也可以手動進行主備切換,指定一個唯讀節點為新的主節點。手動切換適用於高可用演練,或者需要指定某個節點為主節點的情境。

  1. 登入PolarDB控制台

  2. 在左上方,選擇叢集所在地區。

  3. 找到目的地組群,單擊叢集ID。

  4. 基本信息頁面的数据库节点地區,單擊右上方切換表徵圖切換視圖。

  5. 單擊主备切换

    主備切換

  6. 在彈出的對話方塊中,選擇新主節點,單擊确定,開始切換。

    說明
    • 如果新主節點為未開啟熱備功能的唯讀節點,切換過程中可能會出現約20~30秒的閃斷,因此切換前請務必確保應用具備重連機制。

    • 如果新主節點為開啟熱備功能的唯讀節點,主備切換將在5~10秒內完成。

    • 在某些極端情境下,主備切換過程中的閃斷時間可能會增加,但不會超過3分鐘。

常見問題

  • Q:主備切換後,超過十分鐘,叢集狀態仍未恢複運行中,可能是什麼原因?如何處理?

  • A:在發生異常觸發高可用切換時,應用端長串連可能無法感知到串連狀態變化,如果沒有設定socket逾時時間,應用程式會一直等待資料庫返回結果,通常會等到幾百秒後才會斷連,期間資料庫的部分串連無法正常工作,SQL會出現大量執行異常。

    為了避免無效串連,建議合理配置MySQL驅動庫的connectTimeoutsocketTimeout參數,防止出現網路錯誤時一直等待的情況,從而縮短故障時間。

    這兩個參數的值需要根據業務負載和使用方式進行評估。線上事務情境中,參數建議值如下:

    • connectTimeout:建議配置為1~2秒。

    • socketTimeout:若為內網環境,建議配置為10~15秒;若為公網環境,建議配置為60~90秒。

    說明

    以上建議配置僅供參考。

相關API

API

描述

FailoverDBCluster

手動對PolarDB叢集進行主備切換,可以指定一個唯讀節點為新的主節點。