適用先
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

現象

この更新プログラムには、Microsoft SQL Server AlwaysOn リース タイムアウトのサポート可能性に関する次の機能強化が含まれています。

  • リース タイムアウト メッセージが表示され、現在の時刻と予想される更新時刻がログに記録されるようになりました。

  • リース タイムアウトの理由を明確に示すリース ワーカーに対して、新しいエラー メッセージが追加されました。

  • リース ワーカー用の新しい拡張イベントと新しいリング バッファーが追加されました。 リース ステージを明確に示します。

解決方法

この問題は、次の service Pack for SQL Serverで最初に修正されました。

SQL Server 2012 Service Pack 3 (SP3) の詳細については、SQL Server 2012 Service Pack 3 で修正されたバグに関するページを参照してください。

service Pack 2 for SQL Server for SQL Server 2014SQL ServerService パックのサービス パックは累積的です。 Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービス パックの最新の Service Pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新のサービス パックをインストールする前に、以前のサービス パックをインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の記事の表 1 を参照してください。SQL Serverとそのコンポーネントのバージョン、エディション、および更新レベルを決定する方法

詳細情報

さらに分析情報を提供するために、新しいエラー メッセージがSQL Serverに追加されました。 次の表に、それぞれの一覧と説明を示します。

エラー

エラー メッセージ

原因

修正アクション

19419

可用性グループ '%.*ls' と Windows Server フェールオーバー クラスター間のリースの更新は、既存のリースが無効になったため失敗しました。

SQL Server側のリース ワーカーは、クラスターからのイベント 信号を処理するためにスケジュール設定されませんでした。

リース ワーカーが不足しているように見えるSQL Server、サーバーの CPU 使用率を確認します。

19420

可用性グループ '%.*ls' は、リースの更新を停止するように明示的に求められます。

可用性グループをオフラインにする一環として、リースの更新が停止しています。 これは情報提供のみです。

19421

可用性グループ '%.*ls' と Windows Server フェールオーバー クラスター間のリースの更新が失敗しました。これは、リース期間内に更新が行われなかったためです。

クラスター側のリース ヘルパーは、SQL Serverリース ワーカーを期限内に通知しませんでした。

WSFC クラスター内の対応する可用性グループ リソースを確認して、エラーが報告されたかどうかを確認します。

19422

可用性グループ '%.*ls' と Windows Server フェールオーバー クラスター間のリースの更新が失敗しました。エラー コード ('%d') の windows エラーが発生したためです。

SQL Server側のリース ワーカーは、ウィンドウ エラーのためリースを更新できませんでした。

Windows エラー コードを確認し、修正アクションを実行します。

19423

可用性グループ '%.*ls' リースのリースは、リース更新プロセスを開始するために有効ではなくなりました。

リースワーカーがオンラインコールによって提供される余分なリース時間の処理を開始したとき、リースは既に期限切れでした。 これは、スケジュールの問題が原因で発生する可能性があります。

リース ワーカーが不足しているように見えるSQL Server、サーバーの CPU 使用率を確認します。

19424

可用性グループ '%.*ls' のリース ワーカーが、オンライン中に提供される余分なリース時間 (%u ms) をスリープ状態にしています。 これは情報メッセージのみです。 ユーザー アクションは必要ありません。

情報。 リース更新スレッドの開始と可用性グループのオンライン ルーチンの一部として割り当てられた追加のオンライン時間。

エラー 19419 の例: デバッガーを使用してSQL Serverにアタッチすると、SQL Server プロセスを再開するまで、SQL Server プロセス内のスレッドのサービスが中断されます。 SQL Server再開すると、SQL Server エラー ログに次のメッセージが報告されます。

<日時> サーバー エラー: 19419、重大度: 16、状態: 1。 <サーバー Windows Server フェールオーバー クラスター> 日時が、リース タイムアウト期間内に可用性グループ 'ag' をホストしているSQL Serverからプロセス イベントシグナルを受信しませんでした。 <日時> サーバー エラー: 19407、重大度: 16、状態: 1。 <日時> サーバー 可用性グループ 'ag' と Windows Server フェールオーバー クラスターの間のリースが期限切れになりました。 SQL Server のインスタンスとWindows Server フェールオーバー クラスターの間で接続の問題が発生しました。 可用性グループが正しくフェールオーバーされているかどうかを判断するには、対応する可用性グループ リソースを Windows Server フェールオーバー クラスターにチェックします。 <Date Time> Server AlwaysOn: 可用性グループ 'ag' のローカル レプリカは、リースの有効期限が切れているか、リースの更新が失敗したため、オフラインになります。 これは情報メッセージのみです。 ユーザー アクションは必要ありません。 <Date Time> Server 可用性グループ 'ag' のローカル可用性レプリカの状態が 'PRIMARY_NORMAL' から 'RESOLVING_NORMAL' に変更されました。 起動、フェールオーバー、通信の問題、またはクラスター エラーが原因でレプリカの状態が変更されました。 詳細については、可用性グループ ダッシュボード、SQL Server エラー ログ、フェールオーバー クラスター 管理コンソール、またはフェールオーバー クラスター ログWindows Server Windows Serverを参照してください。

SQL Serverがクラスター サービスに応答しなかったため、19419 エラーが返されます。 リース タイムアウト エラー メッセージ (19407) と 19419 エラーが表示される場合もあります。エラー 19424 の例: 可用性グループが PRIMARY ロールに移行する直前に報告される余分なリース時間メッセージを次に示します。

<Date Time> Server 可用性グループ 'ag' のリース ワーカーは、オンライン中に提供される余分なリース時間 (164766 ミリ秒) をスリープ状態にしています。 これは情報メッセージのみです。 ユーザー アクションは必要ありません。 <Date Time> Server 可用性グループ 'ag' のローカル可用性レプリカの状態が 'PRIMARY_PENDING' から 'PRIMARY_NORMAL' に変更されました。 起動、フェールオーバー、通信の問題、またはクラスター エラーが原因でレプリカの状態が変更されました。 詳細については、可用性グループ ダッシュボード、SQL Server エラー ログ、フェールオーバー クラスター 管理コンソール、またはフェールオーバー クラスター ログWindows Server Windows Serverを参照してください。

XEvents のavailability_group_lease_expiredとhadr_ag_lease_renewalが改善され、リースの条件に関する詳細情報を提供するデータ ポイントが追加されました。 次の表では、これらの XEvents の機能強化について説明します。

Xevent

新しい列

説明

availability_group_lease_expired

current_time

リースの有効期限が切れた時刻

availability_group_lease_expired

new_timeout

タイムアウト時間(availability_group_lease_expiredが発生すると、current_timeがnew_timeoutより大きい

availability_group_lease_expired

状態

リース ステージ: 以下のリース ステージの表を参照してください

hadr_ag_lease_renewal

状態

hadr_ag_lease_renewal

hadr_ag_lease_renewal

error_code

状態がHadrLeaseRenewal_FailedWithWindowsError場合、error_codeはエラーに関連付けられている Windows エラー コードです

リース ステージと定義次の表に、使用可能なリース ステージとその機能を示します。

ステージ名

説明

HadrLeaseRenewal_LeaseWorkerStarted

ワーカー スレッドのリースが開始されました。

HadrLeaseRenewal_StartedExcessLeaseSleep

余分なリースの開始。 余分なリース ステージでは、可用性グループのオンライン フェーズ中にリース スレッドの開始が文書化されます。

HadrLeaseRenewal_FailedExcessSleepInvalidOnlineLease

リースが既に期限切れになっている場合、余分なリースは失敗します。

HadrLeaseRenewal_SkipExcessSleep

スリープ可能な期間がリース間隔より短い場合は、余分なリースをスキップします。 手ぶれプロセスを開始するだけで余分なリースを通過する必要はありません。

HadrLeaseRenewal_ExcessSleepSucceeded

余分なリースが成功しました。

HadrLeaseRenewal_RenewSucceeded

更新するたびにこれを確認する必要があります。

HadrLeaseRenewal_LeaseNotValid

エラーと同等: 19419Windows Server フェールオーバー クラスターは、リース タイムアウト期間内に可用性グループ '%.*ls' をホストしているSQL Serverからプロセス イベント シグナルを受信しませんでした。

HadrLeaseRenewal_StopLeaseRenewal

これは、フェールオーバー イベント中に表示されます。

HadrLeaseRenewal_LeaseExpired

エラーと同等: 19421SQL Serverホスティング可用性グループ '%.*ls' は、リース タイムアウト期間内にWindows Server フェールオーバー クラスターからプロセス イベント シグナルを受信しませんでした。

HadrLeaseRenewal_FailedWithWindowsError

ウィンドウ エラーが原因でリースの更新に失敗しました。

詳細については、「 AlwaysOn 可用性グループのリース タイムアウト診断の改善」を参照してください。リース タイムアウトの詳細については、「動作方法: AlwaysOn リース タイムアウトSQL Server」を参照してください。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。