メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

次のような状況で問題が発生します。

  • Microsoft SQL Server 2014 または Microsoft SQL Server 2012 Service Pack 2 (SP2) を実行しているサーバーで、ローリングアップグレードの一部として可用性グループのセカンダリレプリカをホストしている。

  • SQL Server インストールに次のいずれかの更新プログラムを適用していること。

    • SQL Server 2014 累積更新プログラム5

    • SQL Server 2012 Service Pack 2 累積更新プログラム4

    • SQL Server 2012 Service Pack 2 累積更新プログラム3

    重要 この記事で説明されている修正プログラムは、これらの累積的な更新プログラムに置き換わるものです。 まだインストールしていない場合は、これらの更新プログラムをインストールしないでください。

  • 累積更新プログラムのインストールを完了するには、このセカンダリレプリカを再起動してください。

  • 更新されたセカンダリレプリカをプライマリロールに移行している可用性グループをフェールオーバーします。

このシナリオでは、SQL Server を実行していて、可用性グループのプライマリレプリカをホストしているサーバーで、次の1つ以上の現象が発生する可能性があります。

  • セカンダリレプリカは "同期していません" と報告されます。

  • Sys.dm_exec_requests のクエリを実行すると、ユーザーセッションと、コマンドが "DB_STARTUP" として報告されるセッションの間で、断続的なロックがブロックされていることがわかります。 また、 チェックポイント と DB_STARTUP のコマンドの間でブロックすることもあります。

  • 可用性データベースの1つを回復したセッションを含むデッドロックは、SQL Server のエラーログに報告されます。 これらのログは、次のようになります。 <date/time> spid<xx> Recovery is writing a checkpoint in database <dbname/dbid>. This isan informational message only. No user action is required.<date/time> spid<xx> Recovery completed for database <dbname/dbid> in <x> second(s) (analysis<x> ms, redo <x> ms, undo <x> ms.) This is an informational message only. No user action is required.…<date/time> spid<xx> Error: 1205, Severity: 13, State: 28.<date/time> spid<xx> Transaction (Process ID <xx>) was deadlocked on lock resources with anotherprocess and has been chosen as the deadlock victim. Rerun the transaction.

  • 使用可能なデータベースが Microsoft SQL Server Service Broker で有効になっている場合、可用性データベース内のメッセージが正常に処理されないことがあります。 プロファイラーのトレースツールを開始して、"Broker: Message 分類" イベントをキャプチャすると、次のイベントがキャプチャされます。

    9791、送信者のデータベースでブローカーが無効になっている

注: これは、系統的な問題ではありません。 この問題が発生していない場合は、AlwaysOn の構成にこれらの累積更新プログラムを適用することができます。 この累積的な更新プログラムを既に適用していて、この問題が発生していない場合は、システムに影響はありません。この情報はお客様には適用されません。

原因

この問題は、システムスレッドとユーザー接続の間で競合状態が発生することがあるために発生します。 これにより、累積的な更新プログラムのパッチロジックが更新プロセスを完了するために必要なロックを取得できなくなります。

解決方法

この問題を解決するには、次の 重要なオンデマンド (COD) 修正プログラムを適用します。

3034679 FIX: AlwaysOn 可用性グループが同期していないと報告されることがある重要 次の累積的な更新プログラムではなく、この COD 修正プログラムを適用する必要があります。

  • SQL Server 2014 累積更新プログラム5

  • SQL Server 2012 Service Pack 2 累積更新プログラム4

  • SQL Server 2012 Service Pack 2 累積更新プログラム3

注:  この累積的な更新プログラムを既に適用している場合は、次の回避策を使用してこの問題を解決する必要があります。

回避策

この問題は、データベースがプライマリロールに移行している間、ユーザーセッションと可用性データベースに対するアップグレードセッションの競合が原因で発生するため、この競合を解消して、データベースがこの状態から回復できるようにする必要があります。この問題を回避するには、次の手順を実行します。

  1. 次の方法を指定した順序で試してください。

    方法 1: データベースへのアクセスを削除する"Symptoms" セクションで説明されている現象が発生した場合は、必要に応じて次のいずれかまたは両方の手順を実行して、ロックブロックの条件を削除します。

    • クエリ sys.dm_exec_requests は、可用性データベースでロックブロックが発生するセッションを特定します。 KILLステートメントを使って、これらのセッションを終了します。

    • 可用性データベースにアクセスしているアプリケーションを無効にするか、停止します。

    方法1で問題が解決しない場合は、方法2に進みます。

    方法 2: SQL Server ホストサーバーを再起動するアプリケーションアクセスとユーザーアクセスがまだ無効な場合は、影響を受ける可用性データベースをホストしている SQL Server のインスタンスを再起動します。 これを行うには、次の手順を実行します。

    1. 可用性グループの自動フェールオーバーを無効にします。

    2. プライマリレプリカをホストしている SQL Server の影響を受けるインスタンスを再起動します。

    3. 可用性グループの自動フェールオーバーを有効にします。

  2. 影響を受けるデータベースが完全に回復した後、アプリケーションとユーザーの接続を再確立します。

状態

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

関連情報

この問題の影響を受ける累積更新プログラムの詳細については、次の Microsoft サポート技術情報の記事を参照してください。

ヘルプを表示

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

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

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×