現象
次のような状況で問題が発生します。
-
Microsoft SQL Server 2012、2014、または 2016 AlwaysOn 可用性グループを使用している。
-
フェールオーバーが行われ、プライマリレプリカが新しいセカンダリレプリカになります。
-
LSNs の一部では、新しいセカンダリレプリカで元に戻す必要があります。
-
元に戻す処理中にデッドロックが発生し、SQL ロックマネージャーによるデッドロックの犠牲としてフェールオーバーに関連付けられたトランザクションが選択されます。
このシナリオでは、新しいセカンダリレプリカは、インスタンスが再起動されるまで、トランザクションログレコードの受け入れを停止します。 さらに、次のようなラッチタイムアウトエラーメッセージが、SQL Server エラーログの数分間隔でログに記録されます。
バッファーラッチを待機しているときにタイムアウトが発生しました--type 3、bp 0000003CE3093CC0、ページ1:0、stat 0x9、データベース id:11、アロケーションユニット id: 6488064、タスク 0x0000001436F2A558: 0、waittime 300 秒、フラッグ0x100000001a、タスク0x0000001436F2A558 を所有しています。 待ち続けています。' Dbghelp ' バージョンの ' ' * * Dump thread-spid = 0 を使用しています。 EC = 0x0000001038514b90 ** * * * * * * * * * * * * * * * * * * * * * * file_path * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-スタックダンプ: * date time spid spid* ラッチタイムアウト * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。 Sql server 2016 RTM の累積更新プログラム 5 (SQL server 2016 SP1 の累積更新プログラム 2 )
SQL Server 2014 Service Pack 2 の累積更新プログラム3 SQL Server 2014 SP1 の累積更新プログラム11
SQL Server 2012 SP3 の累積更新プログラム7
SQL Server の累積更新プログラムについて
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。 SQL Server 2016 の最新の累積的な更新プログラム
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Microsoft でソフトウェアの更新について説明する 用語 について説明します。