現象
Microsoft SQL Server 2014 のサーバー S1 とサーバー S2 の間に展開される AlwaysOn 可用性グループがあることを前提とします。 プライマリレプリカ (S1) で正常性の問題が検出され、可用性グループが自動フェールオーバー用に構成されている場合は、その状態が解決状態に移行し、フェールオーバーが開始されます。可用性グループは解決状態のままになることがあります。 このエラーは、プライマリレプリカ (S1) またはセカンダリレプリカ (S2) のエラーログに表示されることがあります。
-
次のような競合しないスケジューラエラーは、可用性グループがプライマリから解決するまでの時間の前後に、プライマリレプリカで発生する可能性があります。
<日付> <時刻> spid<id> を使用して、' 4.0.5 ' <> <>> <0 Dateの> を使用してID 、"4.0.5 ' <" のように> <ていることにDateついてTime説明します。 dll ' version ' 4.0.5 ' <Date> <time> server * * *> <0 date Time> <> * * * * * * * * * * * Time * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *> server * <date > <> <> < *> <> <><DateTime <DateTime> <><日付> <時刻> サーバー * <の日付> <時刻> サーバー *> <0> <* * * * * Date * * * * * * * Date * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-* * * * *: <TimeTimeDate> <time> DUMP のサーバースタック署名は、982676> <2 の外部ダンプ処理のためのサーバータイムアウト> <のDate日付> のます。 TimeTime <日付> <時刻> サーバープロセス 0:0:0 (0x1142 8) ワーカー0x00000075CB92C160 は、スケジューラ0ではないと表示されます。 スレッドの作成時間: 13011925023676。 おおよそのスレッド CPU 使用率: カーネル0ミリ秒、ユーザー0ミリ秒。 プロセスの使用率2%。 システムアイドル84%。 間隔: 76880 ミリ秒。
-
可用性グループが自動フェールオーバー用に構成されていて、フェールオーバーパートナーがプライマリ役割に移行しようとしている場合、次のように表示されないスケジューラエラーは、セカンダリレプリカで発生する可能性があります。
<日付> <時刻> spid<ID> 可用性グループデータベース "agname" は、ミラーリングセッションまたは可用性グループがロールの同期によってフェールオーバーしたために、役割が "解決" から "プライマリ" に変更されます。 これは情報メッセージだけです。 No user action is required....<Date> <Time> Server Using 'dbghelp.dll' version '4.0.5'<Date> <Time> Server ***Unable to get thread context for spid 0<Date> <Time> Server * *******************************************************************************<Date> <Time> Server *<Date> <Time> Server * BEGIN STACK DUMP:<Date> <Time> Server * <Date> <Time> spid> <8 ID><Date> <Time> Server * Private server build.<Date> <Time> Server *<Date> <Time> Server * Non-yielding Scheduler> <2 Date> <Time> Server *<Date> <Time> Server * *******************************************************************************<Date> <Time> Server Stack Signature for the dump is 0x000000000000006D> <4 Date> <Time> Server External dump process return code 0x20000001.外部ダンププロセスでエラーが返されませんでした。 <Date> <Time> Server process 0:0:0 (0X1e94) ワーカーの0x000000082F270160 は、スケジューラ0ではないと表示されます。 スレッドの作成時間: 13059453624681。 おおよそのスレッド CPU 使用率: カーネル0ミリ秒、ユーザー0ミリ秒。 プロセスの使用率3%。 システムアイドル84%。 間隔: 70358 ミリ秒 <日付> <時刻> サーバープロセス 0:0:0 (0X998) ワーカー0x00000000B3F86160 は、スケジューラ2では生成されません。 スレッドの作成時間: 13059458965740。 おおよそのスレッド CPU 使用率: カーネル0ミリ秒、ユーザー0ミリ秒。 プロセスの使用率3%。 システムアイドル83%。 間隔: 76913 ミリ秒。日付> <時刻> サーバープロセス 0:0:0 (0X1a64) ワーカー0x0000000B5E220160 は、Scheduler 3 では生成されないように見えます。 スレッドの作成時間: 13059466511951。 おおよそのスレッド CPU 使用率: カーネル0ミリ秒、ユーザー0ミリ秒。 プロセスの使用率3%。 システムアイドル83%。 間隔: 76944 ミリ秒。
注: この問題は、SQL Server 2012 でも発生します。
解決方法
この修正プログラムを適用した後、非生成スケジューラの条件を回避することができます。この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム5 /en-us/help/3011055
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。