Sql-Server
數據庫鏡像登錄嘗試失敗並出現錯誤:‘連接握手失敗。握手驗證失敗。狀態 36。
在將可用性組從 SQL Server 2016 CU1滾動升級到 2016 SP1 時,我們注意到了一個問題。在我們更新該節點的輔助副本複制後立即停止工作,並且 SQL 日誌表明數據庫鏡像登錄存在問題:
使用者“DOMAIN\SERVICEACCOUNT”的數據庫鏡像登錄嘗試。失敗並出現錯誤:‘連接握手失敗。握手驗證失敗。狀態 36.’。
$$ CLIENT: 10.1.2.3 $$
是什麼導致了這個問題,我們該如何解決?
這是數據庫鏡像端點上使用的加密方法的問題。在 SQL Server 2014 中,預設加密類型是 RC4,但在 SQL Server 2016 中,新的預設加密類型是 AES,看起來CU2 更新可能已經刪除了對 RC4 的支持。
要檢測並修復此問題,您可以在節點上執行以下命令:
-- Looking at encryption_algorithm - RC4 is deprecated in 2016 CU2+ Select * From sys.database_mirroring_endpoints Alter Endpoint Hadr_endpoint STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATA_MIRRORING (ROLE = ALL, AUTHENTICATION = WINDOWS NEGOTIATE , ENCRYPTION = REQUIRED ALGORITHM AES RC4) GO
之後複製應該重新開始工作,您可以繼續滾動升級。