SQL Server 2016 CU1から2016 SP1への可用性グループの ローリングアップグレード の実行中に、問題に気付きました。更新後すぐに、セカンダリレプリカのレプリケーションがそのノードで機能しなくなり、SQLログはデータベースミラーリングのログインに問題があったことを示しました。
ユーザー 'DOMAIN\SERVICEACCOUNT'によるデータベースミラーリングのログイン試行。エラーで失敗しました: '接続ハンドシェイクに失敗しました。ハンドシェイクの検証に失敗しました。州36. '。 [クライアント:10.1.2.3]
この問題の原因と解決方法を教えてください。
これは データベースミラーリングエンドポイント で使用される 暗号化方法 の問題です。 SQL Server 2014では、デフォルトの暗号化タイプはRC4でしたが、SQL Server 2016では、新しいデフォルトはAESであり、 CU2 update が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
その後、レプリケーションが再び機能し始め、ローリングアップグレードを続行できます。