Sql-Server

數據庫鏡像登錄嘗試失敗並出現錯誤:‘連接握手失敗。握手驗證失敗。狀態 36。

  • December 25, 2020

在將可用性組從 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

之後複製應該重新開始工作,您可以繼續滾動升級。

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