Availability-Groups

始終開啟的會話超時和心跳之間的區別

  • October 27, 2017

Session Timeout 和 Heartbeat in always on 有什麼區別…我的網路滯後,我在錯誤日誌中經常收到連接超時錯誤,而且我在故障轉移群集錯誤中看到錯過了心跳錯誤 ….哪些設置應該我改變。越過哪些門檻值會強制進行故障轉移——會話超時或心跳?

將不勝感激任何幫助。謝謝

心跳將確定節點是否關閉並啟動故障轉移。會話超時可能來自客戶端、伺服器到伺服器或其他與網路相關的問題。您似乎遇到了幾個網路問題。

您不必擁有專用的心跳網路,但如果您沒有,它確實會使您面臨廣播風暴和其他可能影響您的主網路的問題。

AlwaysOn 在 WSFC API 上執行並使用,但如果您的網路延遲很差,最好解決這個問題,或者至少將您的伺服器放在與客戶端不同的網路硬體/VLAN/子網/等上(如果需要解決此問題) . 無論如何,您都希望至少確保健康的心跳。

WSFC 節點間健康檢測和仲裁投票

WSFC 集群中的每個節點都參與週期性的心跳通信,以與其他節點共享節點的健康狀態。無響應的節點被認為處於故障狀態。仲裁節點集是 WSFC 集群中的大多數投票節點和見證人。WSFC 集群的整體執行狀況和狀態由定期仲裁投票決定。仲裁的存在意味著集群是健康的並且能夠提供節點級別的容錯。+

如果您需要更快的創可貼,或者您只需要處理延遲/網路問題,您可以將超時值更改為更適合您的環境的值。

以管理員身份執行命令提示符。執行以下命令將同站點心跳更改為 2 秒(將 clustername 替換為實際的 WFC 名稱)。

cluster /cluster:clustername /prop SameSubnetDelay=2000:DWORD 

執行以下命令將跨站點心跳更改為 4 秒(將 clustername 替換為實際的 WFC 名稱)。

cluster /cluster:clustername /prop CrossSubnetDelay=4000:DWORD 

執行以下命令將同站點 ping 失去門檻值更改為 10 個失去 ping(將 clustername 替換為實際的 WFC 名稱)。

cluster /cluster:clustername /prop SameSubnetThreshold=10:DWORD

執行以下操作將跨站點 ping 失去門檻值更改為 10 個失去 ping(將 clustername 替換為實際的 WFC 名稱)。

cluster /cluster:clustername /prop CrossSubnetThreshold=10:DWORD 

使用 Powershell:

以管理員身份執行 PowerShell。導入 FailoverClusters 模組。

Import-Module FailoverClusters 

執行以下命令將同站點心跳更改為 2 秒(將 clustername 替換為實際的 WFC 名稱)。(get-cluster).SameSubnetDelay = 2000 執行以下命令將跨站心跳改為4秒(將clustername替換為實際的WFC名稱)。

(get-cluster).CrossSubnetDelay = 4000

執行以下命令將同站點 ping 失去門檻值更改為 10 個失去 ping(將 clustername 替換為實際的 WFC 名稱)。

(get-cluster).SameSubnetThreshold = 10

執行以下操作將跨站點 ping 失去門檻值更改為 10 個失去 ping(將 clustername 替換為實際的 WFC 名稱)。(get-cluster).CrossSubnetThreshold = 10

請注意,這絕不是建議在您的生產系統上執行它而不首先對其進行測試並讓更廣泛的群體(例如網路和伺服器管理員)參與其中

引用自:https://dba.stackexchange.com/questions/189506