Availability-Groups
改善 AlwaysOn 故障轉移時間
我已經在不同的子網上設置了一個帶有主副本和輔助副本的 AlwaysOn,但我被迫使用 Registerallprovidersip 設置為 1。這導致偵聽器在 DNS 中只有 0 個 IP 地址,這意味著我在受 DNS 複製的支配時發生故障轉移事件,因為偵聽器的 IP 需要一段時間才能更新。
有沒有人在類似的情況下找到了改善故障轉移時間的方法?
您應該在更改記錄的生存時間 (TTL) 的同時修改 registerallprovidersip 設置。
如果不修改預設 TTL,註冊的生命週期太長。遺憾的是,仍然存在延遲,但顯著降低 TTL 有幫助。
理想情況下,您應該了解如何讓客戶端連接指定多子網故障轉移,而不必執行此解決方法。但是隨著 TTL 的降低,你應該沒問題,我已經和幾個客戶一起做了,一切都很好。它仍然不會是瞬時的。
您可以在此處查看有關這些設置相互配合工作的更多資訊。
我處於類似情況……其中我們受到 DNS 更新的支配,我的公司有 20 分鐘的全球政策。我們有
[HostRecordTTL] = 300 and [RegisterAllProvidersIP] = 0
由於遺留應用程序。下面的腳本將為所有主副本(故障轉移後的主副本)生成命令:
##### Author: Kin Shah ############################################################## #run below tsql to update the cluster network name when the failover happens. # In my company the global DNS cache updates every 20 mins .. # This was used to re-register / force the Listener device register with the local DC # registers the Network Name resources of the local cluster with a DNS server and does not interrupt cluster availability. #CommandToRun_PowerShell column in the script output will provide the command to be run on the primary replica (the primary after failover) ! SELECT 'Get-ClusterResource ' +AGC.name+'_'+AGL.dns_name + ' | Update-ClusterNetworkNameResource' as CommandToRun_PowerShell-- this is the meat !! , RCS.replica_server_name , ARS.role_desc , AGL.dns_name FROM sys.availability_groups_cluster AS AGC INNER JOIN sys.dm_hadr_availability_replica_cluster_states AS RCS ON RCS.group_id = AGC.group_id INNER JOIN sys.dm_hadr_availability_replica_states AS ARS ON ARS.replica_id = RCS.replica_id INNER JOIN sys.availability_group_listeners AS AGL ON AGL.group_id = ARS.group_id WHERE ARS.role_desc = 'PRIMARY'