この記事では、Microsoft SQL Server インスタンスに累積的な更新プログラム (CU) または Service Pack (SP) を適用するときに発生する可能性がある問題をトラブルシューティングするための一般的な手順について説明します。 また、次のエラー メッセージまたは条件を解決する方法についても説明します。
-
Wait on データベース エンジン recovery handle failedアップグレード スクリプトを実行するときのメッセージとエラー 912 および 3417 - Windows インストーラー キャッシュに MSI または MSP (更新) ファイルがないために発生するセットアップ エラー。
-
The データベース エンジン 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 を適用する前に、プログラム インスタンスと同じレベルに新しい機能を更新する必要があります。
一般的なトラブルシューティングの手法
次の手順に従って、問題を切り分けます。
- セットアップ プロセスの 失敗 画面から 詳細 を選択します。
- %programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Log フォルダーで、Product features discovered セクションの下にあるSummary.txtを確認して、一覧表示されている機能のいずれかがエラーを報告するかどうかを確認します。 その場合は、その機能に影響する問題の解決に集中できます。
- 注目している報告されたエラー時間に対応する yyyyMMdd_HHmmss ( 20220618_174947 など) という名前のサブフォルダーに移動します。 目的は、必要に応じて、機能固有のファイル、ERRORLOG ファイル、 Details.txt ファイルを調べることです。
- \MSSQLSERVER サブフォルダーに移動し、失敗した機能に固有のログ ファイルを見つけます。 たとえば、 sql_engine_core_inst_Cpu64_1.log。 アップグレード スクリプトのエラーについては、アップグレードの失敗時刻に対応する SQLServer_ERRORLOG_date_time.txt ファイルを確認してください。
- 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 インストーラー キャッシュ ファイルを復元する」で説明されている次のいずれかの方法を使用します。
- SQL Server のインストールを修復します。
- FixMissingMSI ツールを使用します。
- FindSQLInstalls.vbs スクリプトを使用します。
- ファイルを手動で復元します。
- システム状態のバックアップからファイルを復元します。
- 「不足している Windows インストーラー キャッシュ ファイルを復元する」で説明されている手順を確認して実装します。
レジストリのデータまたはログの場所が正しくないため、セットアップが失敗する
CU または SP をインストールすると、既定のデータ フォルダーとログ フォルダーが無効な場合、次のようなエラーが表示されることがあります。
"レジストリ内のユーザー データ ディレクトリが無効です。 インスタンス ハイブの下の DefaultData キーが有効なディレクトリをポイントすることを確認します。
"レジストリ内のユーザー ログ ディレクトリが無効です。 インスタンス ハイブの下の DefaultLog キーが有効なディレクトリをポイントすることを確認します。"
SQL Server データベース エンジン サービス インスタンス機能のインストール中にエラーが発生しました。 レジストリ内のデータベース エンジン システム データ ディレクトリの値が無効です。
この問題を解決するには、次の手順に従ってください。
- SQL Server Management Studio (SSMS) を使用して SQL Server インスタンスに接続します。
- オブジェクト エクスプローラーで SQL Server インスタンスを右クリックし、プロパティ>データベースの設定を選択します。
- Database の既定の場所 の下で、Data および Log 内のフォルダーが正しいことを確認します。
- SQL Server 構成マネージャーで、SQL Server Servicesを選択し、影響を受ける SQL Server サービスをダブルクリックし、Advanced タブを選択し、Data Path の値が正しいことを確認します。 値は淡色表示され、変更できません。 ただし、修正する場合は、SQL Server の累積更新プログラムまたは Service Pack のインストール時に、レジストリ内の Data または Log ディレクトリが無効である場合のエラーで、Method 2 に従って SQLDataRoot レジストリ エントリを変更します。
- 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.
追加情報
- SQL Server のバージョンとダウンロード場所で現在使用可能な更新プログラムの完全な一覧については、「 バージョン、エディション、および更新レベルの詳細 - SQL Serverを参照してください。
- SQL Server バージョンのサポート対象期間とサービス提供タイムラインの詳細については、「Microsoft 製品ライフサイクル ページ」を参照してください。
- SQL Server のさまざまなバージョンのサービス提供モデルの詳細については、「Incremental Servicing Model for SQL Server Updates」および「Modern Servicing Model for SQL 2017 and later versions」を参照してください。
- SQL Server の更新方法に関する一般的な情報については、「 SQL Server サービス更新プログラムのインストールを参照してください。
- SQL Server およびその他の製品のセキュリティ更新プログラムについては、「 セキュリティ更新プログラム ガイドを参照してください。
- Microsoft の更新プログラムに関連付けられている標準的な用語については、「 Microsoft ソフトウェア更新プログラムの説明に使用される標準用語の説明を参照してください。
- セキュリティの高い環境で発生する可能性があるセットアップの問題を解決するには、セットアップ アカウントに特定のユーザー権限がない場合に SQL Server のインストールが失敗するを参照してください。