如何設定 Always On 可用性群組,以在資料庫數據檔無法使用時執行故障轉移
摘要
在 SQL Server Always On 可用性群組中,資料庫層級健全狀況偵測只能在資料庫事務歷史記錄中發生磁碟失敗或類似) 的錯誤 (執行故障轉移。
如果數據文件發生錯誤,SQL Server 只會將失敗通知傳送至 Windows Server 故障轉移叢集 (WSFC) ,並依賴它根據原則設定做出正確的決策。
若要設定 Always On 可用性群組,以便在錯誤 823 和其他錯誤發生時執行故障轉移,請使用下列其中一個程式:
設定故障轉移叢集管理員
此程式會設定 WSFC 原則來造成故障轉移至其中一個可能的擁有者,而不是嘗試在目前的主要節點上重新啟動角色。
開啟故障轉移叢集管理員。
展開您的叢集,然後選取 [角色]。
以滑鼠右鍵按兩下 AG 角色,然後選取 [ 屬性>原則]。
將 指定期間內的 [重新啟動次數上限 ] 值設定為 0。
核取 [ 如果所有重新啟動嘗試都失敗,請在指定的期間 (hh:mm) 后重新啟動 ,然後選取 [ 確定]。
請確定您的兩個節點都是 可能的擁有者 和 慣用的擁有者。
自訂組態選項
此程式提供如何在 SQL Server 和 SQL Server Agent 中使用可用警示機制來偵測錯誤並執行故障轉移的範例。
在 [SQL Server Management Studio] 中,展開 [SQL Server Agent],以滑鼠右鍵按兩下 [警示],然後選取 [新增警示...]。
指定 [名稱] 的值,選取 [SQL Server 類型] 的事件警示,根據清單指定 [錯誤號碼] 的值為 823 或任何其他所需的錯誤,然後選取 [確定]。
選 取 [回應],核取 [執行作業],選取您想要的作業,然後選取 [ 確定]。
在 [作業步驟屬性] 對話框中,指定 [步驟名稱] 的值,針對 [類型] 選取 [操作系統 (CmdExec) ],然後選取 [SQL Server Agent 服務帳戶] 作為 [執行身分]。
輸入下列故障轉移 sqlcmd 命令:
sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"
注意事項
<SecondaryReplicaName>
、<YourPassword>
和<AGName>
是佔位元。 您必須加以變更,以符合您的環境。 此腳本是參考的範例。 完整腳本應該先執行其他檢查,再執行故障轉移。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應