管理主備切換
當(dāng)實例主節(jié)點異常無法使用,或?qū)嵗嬖跐撛陲L(fēng)險并在備節(jié)點中進行了緊急修復(fù)時,RDS會自動觸發(fā)主備切換,將主節(jié)點和備節(jié)點進行互換,切換后實例連接地址保持不變,應(yīng)用自動連接到新的主節(jié)點(原備節(jié)點),從而保障實例的高可用性。此外,您還可以手動切換主備節(jié)點。
前提條件
如果實例為常規(guī)實例,必須為如下系列:
高可用系列
集群系列
說明基礎(chǔ)系列實例沒有備節(jié)點,不支持主備切換。
如果實例為只讀實例,系列必須為高可用系列,存儲類型必須為云盤。
背景信息
自動切換:實例默認開啟自動切換,當(dāng)主節(jié)點出現(xiàn)故障無法訪問時,會自動切換到備節(jié)點。主備切換的觸發(fā)時機,請參見主備切換原因。
手動切換:即使自動切換是開啟狀態(tài),您也可以手動進行主備切換。手動切換可用于容災(zāi)演練或多可用區(qū)場景下的就近連接等需求。
高可用系列實例的主備節(jié)點數(shù)據(jù)會實時同步,您只能訪問主節(jié)點,備實例僅作為備份形式存在,不提供業(yè)務(wù)訪問。
高可用系列的只讀實例也支持主備庫切換和查看主備切換日志功能。
其他引擎切換主備實例請參見:
影響
主備節(jié)點切換過程中通常會出現(xiàn)不超過30秒的服務(wù)不可用,請確保您的應(yīng)用程序具有自動重連機制。
如果您的應(yīng)用程序使用的是較早版本的Druid組件進行數(shù)據(jù)庫連接管理,可能會遇到數(shù)據(jù)庫連接斷開后不會自動重連恢復(fù)的問題,建議您將Druid升級到1.1.16或之后版本,以避免此問題。
如果實例下掛載有只讀實例,主備實例切換后,只讀實例的數(shù)據(jù)會有幾分鐘的延遲,因為需要重建復(fù)制鏈路、同步增量數(shù)據(jù)等。
主備切換不會導(dǎo)致實例連接地址變更,但后臺對應(yīng)的IP地址可能會變化。使用實例連接地址時,主備切換不會對您的應(yīng)用正常運行造成影響。
當(dāng)實例發(fā)生故障時,切換時間可能會延長。
手動切換主備節(jié)點
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側(cè)導(dǎo)航欄中,選擇服務(wù)可用性。
在實例可用性區(qū)域,單擊主備庫切換。
選擇切換時間,然后單擊確定。
重要在主備節(jié)點切換期間,有很多操作無法執(zhí)行,例如管理數(shù)據(jù)庫和賬號、切換網(wǎng)絡(luò)類型等,建議您選擇在設(shè)置時間內(nèi)切換當(dāng)前設(shè)置。
對于集群系列實例,您也可以在實例的基本信息頁面的實例拓撲圖上進行主備節(jié)點切換操作。
臨時關(guān)閉主備自動切換
自動切換默認為開啟,主節(jié)點出現(xiàn)故障會自動切換到備節(jié)點,在遇到如下情形時您可以選擇臨時關(guān)閉主備自動切換:
大促活動等,不希望主備切換影響系統(tǒng)可用性。
重要應(yīng)用系統(tǒng)升級等,不希望主備切換引入其他變數(shù)。
重大事件或者穩(wěn)定保障期,不希望主備切換影響系統(tǒng)穩(wěn)定性。
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側(cè)導(dǎo)航欄中,選擇服務(wù)可用性。
在實例可用性區(qū)域,單擊自動切換主備。
說明如果看不到自動切換主備按鈕,請再次確認本文的前提條件。
選擇臨時關(guān)閉,并設(shè)置臨時關(guān)閉截止時間,然后單擊確定。
說明到達臨時關(guān)閉截止時間后,實例恢復(fù)為自動進行主備切換。
默認為臨時關(guān)閉1天,最長可設(shè)置為7天后的23:59:59。
設(shè)置完畢后,您可以在服務(wù)可用性頁面查看臨時關(guān)閉主備自動切換的截止時間。
查看主備切換日志
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側(cè)導(dǎo)航欄中,選擇服務(wù)可用性。
在主備切換日志區(qū)域,調(diào)整查詢時間范圍,查看主備切換日志。
常見問題
Q:備節(jié)點可以訪問嗎?
只有集群系列實例的備節(jié)點可以訪問,其他系列的備節(jié)點不可以訪問。
Q:主備切換后,是否需要手動切換回主節(jié)點?
不需要,主備節(jié)點的數(shù)據(jù)完全一致,主備切換后原備節(jié)點被選舉成為新的主節(jié)點,無需進行額外操作。
Q:主備切換后,超過十分鐘,實例狀態(tài)仍未恢復(fù)運行中,可能是什么原因?如何處理?
RDS在發(fā)生異常觸發(fā)高可用切換時,應(yīng)用端長連接可能無法感知到連接狀態(tài)變化,如果沒有設(shè)置socket超時時間,應(yīng)用程序會一直等待數(shù)據(jù)庫返回結(jié)果,通常會等到幾百秒后才會斷連,期間數(shù)據(jù)庫的部分連接無法正常工作,SQL會出現(xiàn)大量執(zhí)行異常。為了避免無效連接,建議配置connectTimeout和socketTimeout,防止出現(xiàn)網(wǎng)絡(luò)錯誤時一直等待的情況,從而縮短故障時間。
超時配置值需要根據(jù)業(yè)務(wù)負載和使用方式進行評估,在線事務(wù)場景中建議connectTimeout配置為1~2秒,socketTimeout配置為60~90秒,此配置僅供參考。
相關(guān)API
API | 描述 |
切換RDS主備節(jié)點。 | |
開啟或關(guān)閉RDS實例主備自動切換。 | |
查看RDS實例主備自動切換設(shè)置。 |