次の方法で共有


SQL Server の累積的な更新プログラムのインストールに関する一般的な問題のトラブルシューティング

この記事では、Microsoft SQL Server インスタンスに累積的な更新プログラム (CU) または Service Pack (SP) を適用するときに発生する可能性がある問題をトラブルシューティングするための一般的な手順について説明します。 また、次のエラー メッセージまたは条件を解決する方法についても説明します。

  • Wait on Database Engine recovery handle failed メッセージとエラー 912 および 3417 アップグレード スクリプトを実行する場合。
  • Windows インストーラー キャッシュに MSI または MSP (更新) ファイルがないために発生するセットアップ エラー。
  • The Database Engine system data directory in the registry is not valid またはメッセージを the User Log directory in the registry is not valid します。
  • Network path was not found リモート レジストリ サービスまたは管理者共有が Always On フェールオーバー クラスター インスタンス (FCI) または Always On 可用性グループで無効になっている場合に表示されるその他のエラー メッセージ。

累積的な更新プログラムと Service Pack のインストール情報

このセクションでは、CU と SP のインストールに関する情報を提供します。

  • Microsoft SQL Server 2016 以前のバージョンの場合:

    • CU をインストールする前に、SQL Server インスタンスがその CU に適した SP レベルであることを確認します。 たとえば、SQL Server 2016 インスタンスに SP2 を適用する前に、SQL 2016 SP2 に CU17 を適用することはできません。
    • 特定の SP ベースラインに対して常に最新の CU を適用できます。そのサービス パックに以前の CU を適用する必要はありません。 たとえば、SQL Server 2016 SP2 インスタンスに CU17 を適用するには、CU14、CU15、CU16 に以前の更新プログラムがインストールされていない場合は適用をスキップし、CU17 を直接適用できます。
  • Microsoft SQL Server 2017 以降のバージョンでは、いつでも利用可能な最新の CU を適用できます。 (SQL Server 2017 以降のバージョンにはサービス パックは存在しません)。

  • CU または SP を適用する前に、更新するインスタンスが正しくインストールされていることを確認してください。 SQL Server プログラム ファイルとデータ ファイルは、次の場合にインストールできません。

    • リムーバブル ディスク ドライブ。
    • 圧縮を使用するファイル システム。
    • システム ファイルが配置されているディレクトリ。
    • フェールオーバー クラスター インスタンス上の共有ドライブ。
  • cu または SP をインスタンスに適用した後データベース エンジン機能を追加する場合は、新しい CU または SP を適用する前に、プログラム インスタンスと同じレベルに新しい機能を更新する必要があります。

一般的なトラブルシューティングの手法

次の手順に従って、エラーを分離します。

  1. セットアップ プロセスの Failure 画面から Details を選択します。
  2. %programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Log フォルダーで、Product features discovered セクションの下にあるSummary.txtを確認して、一覧表示されている機能のいずれかがエラーを報告するかどうかを確認します。 その場合は、その機能に影響する問題の解決に集中できます。
  3. 注目している報告されたエラー時間に対応する yyyyMMdd_HHmmss ( 20220618_174947 など) という名前のサブフォルダーに移動します。 目的は、必要に応じて、機能固有のファイル、ERRORLOG ファイル、 Details.txt ファイルを調べることです。
  4. \MSSQLSERVER サブフォルダーに移動し、失敗した機能に固有のログ ファイルを見つけます。 たとえば、 sql_engine_core_inst_Cpu64_1.log。 アップグレード スクリプトのエラーについては、アップグレードの失敗時刻に対応する SQLServer_ERRORLOG_date_time.txt ファイルを確認します。
  5. Details.txtログ ファイルを開き、キーワード "Failed" を検索します。すべての障害が重大と見なされるわけではありません。

詳細については、「 SQL Server セットアップ ログ ファイルの表示と読み取り」を参照してください。

次のいくつかのセクションでは、状況に対応するシナリオを確認し、関連するトラブルシューティングの手順に従います。 一致するシナリオがない場合は、ログ ファイルでさらにポインターを探します。

エラー 912 および 3417 と "wait on データベース エンジン recovery handle failed"

T-SQL アップグレード スクリプトは、すべての SQL Server 累積的な更新プログラムと共に配布されます。 これらは、SQL Server バイナリが最新バージョンに置き換えられた後に実行されます。 これらの T-SQL スクリプトが何らかの理由で実行されない場合、セットアップ プログラムは "wait on データベース エンジン recovery handle failed" というエラーを報告します。 セットアップでは、最新の SQL Server エラー ログにエラー 912 および 3417 が記録されます。 エラー 912 と 3417 は、データベース スクリプトのアップグレードの失敗と、 master データベースの回復の失敗にそれぞれ関連付けられています。 通常、エラー 912 より前のメッセージは、アップグレード スクリプトの実行時に発生したエラーの根本原因に関する情報を提供します。

912 と 3417 と共に、さまざまなエラーが発生する可能性があります。 一般的なシナリオと関連するソリューションの概要の詳細については、「 更新プログラムの適用時のアップグレード スクリプトエラーのトラブルシューティング」を参照してください

Windows キャッシュにインストーラー ファイルが見つからないことが原因で発生するセットアップ エラー

セットアップ プロセスに Windows インストーラー テクノロジを使用する SQL Server などのアプリケーションでは、重要なファイルが Windows インストーラー キャッシュに格納されます。 既定のインストーラー キャッシュの場所は C:\Windows\Installer です。 これらのファイルは、アプリケーションのアンインストールと更新に必要です。 これらは、そのコンピューターに固有です。 これらのファイルに依存するアプリケーションの更新は、誤って削除された場合や侵害された場合は機能しません。 この状態を解決するには、「 不足している Windows インストーラー キャッシュ ファイルを復元する」で説明されている次のいずれかの方法を使用します

レジストリのデータまたはログの場所が正しくないため、セットアップが失敗する

CU または SP をインストールすると、既定のデータ フォルダーとログ フォルダーが無効な場合、次のようなエラーが表示されることがあります。

"レジストリ内のユーザー データ ディレクトリが無効です。 インスタンス ハイブの下の DefaultData キーが有効なディレクトリをポイントすることを確認します。

"レジストリ内のユーザー ログ ディレクトリが無効です。 インスタンス ハイブの下の DefaultLog キーが有効なディレクトリをポイントすることを確認します。"

"SQL Server データベース エンジン Services インスタンス機能のインストール中にエラーが発生しました。 レジストリの データベース エンジン システム データ ディレクトリが無効です。"

この問題を解決するには、次の手順に従ってください。

  1. SQL Server Management Studio (SSMS) を使用して SQL Server インスタンスに接続します。
  2. オブジェクト エクスプローラーで SQL Server インスタンスを右クリックし、Properties>Database 設定を選択します。
  3. Database の既定の場所で、Data および Log 内のフォルダーが正しいことを確認します。
  4. SQL Server 構成マネージャーで、SQL Server Servicesを選択し、影響を受ける SQL Server サービスをダブルクリックし、[Advanced] タブを選択し、Data パスの値が正しいことを確認します。 値は淡色表示され、変更できません。 ただし、修正する場合は、「エラー」の「Method 2 に従ってください。SQL Server Cumulative Update または Service Pack をインストールするときに、レジストリ内のデータディレクトリまたはログ ディレクトリが無効であるSQLDataRoot レジストリ エントリを変更します。
  5. CU または SP のインストールを再試行します。

構成が正しくない Windows Server フェールオーバー クラスタリング (WSFC) ノード

SQL Server フェールオーバー クラスター インスタンス (FCI) の円滑な機能とメンテナンスを行う場合は、「フェールオーバー クラスタリングのインストールフェールオーバー クラスター インスタンスの管理とメンテナンスに関する記事で説明されているベスト プラクティスに従ってください。 CU または SP を適用するときにエラーが発生する場合は、次の条件を確認します。

  • Remote Registry サービスがアクティブであり、WSFC クラスターのすべてのノードで実行されていることを確認します。
  • SQL Server のサービス アカウントが Windows クラスターの管理者でない場合は、すべてのノードで管理共有 (C$ など) が有効になっていることを確認します。 詳細については、「 管理共有がない場合に発生する可能性がある問題の概要を参照してください。 これらの共有が正しく構成されていない場合は、CU または SP をインストールしようとすると、次の 1 つ以上の現象が発生する可能性があります。
    • 更新プログラムの実行に時間がかかるか、応答しません。 セットアップ ログでは、進行状況は表示されません。
    • セットアップ ログには、次のようなメッセージが含まれています。

      The network path was not found. System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.

追加情報