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 を適用する前に、プログラム インスタンスと同じレベルに新しい機能を更新する必要があります。
一般的なトラブルシューティングの手法
次の手順に従って、エラーを分離します。
- セットアップ プロセスの Failure 画面から Details を選択します。
- %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 データベース エンジン Services インスタンス機能のインストール中にエラーが発生しました。 レジストリの データベース エンジン システム データ ディレクトリが無効です。"
この問題を解決するには、次の手順に従ってください。
- SQL Server Management Studio (SSMS) を使用して SQL Server インスタンスに接続します。
- オブジェクト エクスプローラーで SQL Server インスタンスを右クリックし、Properties>Database 設定を選択します。
- Database の既定の場所で、Data および Log 内のフォルダーが正しいことを確認します。
- SQL Server 構成マネージャーで、SQL Server Servicesを選択し、影響を受ける SQL Server サービスをダブルクリックし、[Advanced] タブを選択し、Data パスの値が正しいことを確認します。 値は淡色表示され、変更できません。 ただし、修正する場合は、「エラー」の「Method 2 に従ってください。SQL Server Cumulative Update または Service Pack をインストールするときに、レジストリ内のデータディレクトリまたはログ ディレクトリが無効である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 and Modern Servicing Model for SQL 2017 以降のバージョンを参照してください。
- SQL Server の更新方法に関する一般的な情報については、「 SQL Server サービス更新プログラムのインストールを参照してください。
- SQL Server およびその他の製品のセキュリティ更新プログラムについては、「 セキュリティ更新プログラム ガイドを参照してください。
- Microsoft の更新プログラムに関連付けられている標準的な用語については、「 Microsoft ソフトウェア更新プログラムの説明に使用される標準用語の説明を参照してください。
- セキュリティの高い環境で発生する可能性があるセットアップの問題を解決するには、「セットアップ アカウントに特定のユーザー権限がない場合 SQL Server のインストールが失敗する」を参照してください。