徵狀
此更新包含 Microsoft SQL Server AlwaysOn 租約超時支援的下列改良功能:
-
租約超時訊息現在會顯示並記錄目前時間及預期的續約時間。
-
已為租用工作中新增一則新的錯誤訊息,清楚指出租約超時的原因。
-
新增新的延伸事件,以及新增租者的新環形緩衝區。 這些明確指出了租賃階段。
解決方案
此問題首先是在下列 SQL Server Service Pack 中修正。
如需 SQL Server 2012 Service Pack 3 (SP3)的詳細資訊,請參閱 在 Sql server 2012 Service pack 3 中修正的錯誤。
Sql server for SQL server 2014 Service Pack 2關於 SQL Server 的 Service packService pack 是累加的。 每個新的 service pack 都包含舊版 service pack 中的所有修正程式,以及任何新的修正程式。 我們建議您將最新的 service pack 和該 service pack 的最新累計更新套用。 在安裝最新的 service pack 之前,您不需要安裝舊版 service pack。 使用下列文章中的表格1,尋找最新 service pack 和最新累計更新的詳細資訊。如何判斷 SQL Server 及其元件的版本、版本與更新層級
其他相關資訊
若要提供其他深入資訊,請在 SQL Server 中新增新的錯誤訊息。 下表列出並說明每個專案。
出錯 |
錯誤訊息 |
原因 |
修正動作 |
---|---|---|---|
19419 |
在可用性群組 ' %1!」和 Windows Server 容錯移轉叢集之間的租約更新失敗,因為現有的租約已不再有效。 |
SQL Server 端的租約工作者沒有及時排程,處理來自群集的事件信號。 |
在伺服器上檢查 CPU 利用率,因為 SQL Server 租約 worker 看起來是 starving。 |
19420 |
已明確要求可用性群組 ' %1! ' 停止租約更新。 |
在將可用性群組設為離線時,租約續約是停止的一部分。 這只是資訊。 |
|
19421 |
在可用性群組 ' %1!」和 Windows Server 容錯移轉叢集之間的租約更新失敗,因為在租約間隔內沒有發生更新。 |
群集端的借用協助程式無法及時指示 SQL Server 租約工作者的時間。 |
在 WSFC 群集中檢查對應的可用性群組資源,以查看是否報告任何錯誤。 |
19422 |
在可用性群組 ' %1!」和 Windows Server 容錯移轉叢集之間的租約更新失敗,因為發生 Windows 錯誤(「% d」)。 |
由於 windows 錯誤,在 SQL Server 端的租約工作者無法更新租約。 |
檢查 windows 錯誤碼並採取糾正動作。 |
19423 |
可用性群組 '%. * ls」租約的租賃已不再有效,無法開始續租更新程式。 |
當租約工人開始處理線上通話提供的額外租約時間時,租約已過期。 這可能是因為排程問題所發生。 |
在伺服器上檢查 CPU 利用率,因為 SQL Server 租約 worker 看起來是 starving。 |
19424 |
可用性群組 '%. * ls」的租約 worker 現在已休眠在線上期間提供的多餘租約時間(% u ms)。 這只是一則資訊訊息。 不需要使用者動作。 |
參考. 提供額外的線上時間來啟動租約續約執行緒,以及作為可用性群組線上例行常式的一部分。 |
錯誤19419的範例: 如果您使用偵錯工具附加至 SQL Server,則會中斷 SQL Server 程式中的任何執行緒回應,直到您繼續執行 SQL Server 進程為止。 當您繼續 SQL Server 時,系統會在 SQL Server 錯誤記錄中報告下列內容:
<日期時間> 伺服器錯誤:19419,嚴重性:16,狀態:1。 <日期時間> 伺服器 Windows Server 容錯移轉叢集在租約超時期間內,沒有從 SQL Server 託管可用性群組「ag」的處理事件信號。 <日期時間> 伺服器錯誤:19407,嚴重性:16,狀態:1。 <日期時間> 伺服器可用性群組「ag」與 Windows Server 容錯移轉叢集之間的租用已過期。 SQL Server 實例與 Windows Server 容錯移轉叢集之間出現連線問題。 若要判斷可用性群組是否正確地進行了容錯移轉,請檢查 Windows Server 容錯移轉叢集中對應的可用性群組資源。 <日期時間> 伺服器 AlwaysOn:由於租約過期或租約續約失敗,因此可用性群組「ag」的本機複本將會離線。 這只是一則資訊訊息。 不需要使用者動作。 <日期時間> 伺服器可用性組 "ag" 中的本機可用性複本狀態已從 "PRIMARY_NORMAL" 變更為 "RESOLVING_NORMAL"。 由於啟動、容錯移轉、通訊問題或群集錯誤,複本狀態會變更。 如需詳細資訊,請參閱可用性群組儀表板、SQL Server 錯誤記錄、Windows Server 容錯移轉叢集管理主控台或 Windows Server 容錯移轉叢集記錄。
因為 SQL Server 沒有回應叢集服務,所以會傳回19419錯誤。 您可能也會收到租賃逾時錯誤訊息(19407)以及19419錯誤。錯誤19424的範例:以下是在可用性群組轉換為主要角色前報告的多餘租約時間訊息:
<日期時間> 伺服器 [可用性] 群組「ag」的租約 worker 現在已休眠在線上期間提供的多餘租約時間(164766 ms)。 這只是一則資訊訊息。 不需要使用者動作。 <日期時間> 伺服器可用性組 "ag" 中的本機可用性複本狀態已從 "PRIMARY_PENDING" 變更為 "PRIMARY_NORMAL"。 由於啟動、容錯移轉、通訊問題或群集錯誤,複本狀態會變更。 如需詳細資訊,請參閱可用性群組儀表板、SQL Server 錯誤記錄、Windows Server 容錯移轉叢集管理主控台或 Windows Server 容錯移轉叢集記錄。
已改良 availability_group_lease_expired 和 hadr_ag_lease_renewal XEvents,並加入了資料點,提供有關租賃條件的詳細資訊。 下表說明這些 XEvents 的改良功能:
XEvent |
新增欄 |
描述 |
---|---|---|
availability_group_lease_expired |
current_time |
租約到期的時間 |
availability_group_lease_expired |
new_timeout |
超時時間、availability_group_lease_expired 引發時,current_time 大於 new_timeout |
availability_group_lease_expired |
市 |
租賃階段:請參閱下方的 [租賃階段] 表格 |
hadr_ag_lease_renewal |
市 |
hadr_ag_lease_renewal |
hadr_ag_lease_renewal |
error_code |
如果狀態是 HadrLeaseRenewal_FailedWithWindowsError,error_code 是與失敗相關聯的 Windows 錯誤碼 |
租賃階段與定義下表列出可能的租約階段並說明其功能:
階段名稱 |
描述 |
---|---|
HadrLeaseRenewal_LeaseWorkerStarted |
已啟動租用工作執行緒。 |
HadrLeaseRenewal_StartedExcessLeaseSleep |
啟動多餘的租賃。 多餘的租賃階段會在可用性群組的線上階段中記錄租約執行緒的開始。 |
HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease |
如果租約已到期,我們將無法進行多餘的租賃。 |
HadrLeaseRenewal_SkipExcessSleep |
如果 sleep 的持續時間小於租約間隔,我們就會略過多餘的租賃。 只要開始進行手搖動程式,就不需要經過多餘的租賃。 |
HadrLeaseRenewal_ExcessSleepSucceeded |
過量租賃成功。 |
HadrLeaseRenewal_RenewSucceeded |
每次更新時,我們都會看到這種情況。 |
HadrLeaseRenewal_LeaseNotValid |
等價于錯誤: 19419Windows Server 容錯移轉叢集在租約超時期間內,沒有來自 SQL Server 託管可用性群組 '%. * ls」的處理事件信號。 |
HadrLeaseRenewal_StopLeaseRenewal |
在容錯移轉事件期間,您應該會看到這個畫面。 |
HadrLeaseRenewal_LeaseExpired |
等價于錯誤:19421SQL 伺服器主機可用性群組 '%. * ls ' 在租約超時期間內未從 Windows Server 容錯移轉叢集接收處理事件信號。 |
HadrLeaseRenewal_FailedWithWindowsError |
由於 windows 錯誤,借用更新失敗。 |
如需詳細資訊,請參閱 改良的 AlwaysOn 可用性群組租約超時診斷程式。如需有關租約超時的詳細資訊,請參閱 它的運作方式: SQL Server AlwaysOn 租約超時。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。