累積的な更新プログラムのインストールに関する一般的な問題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 を適用する前に、新しい機能をプログラム インスタンスと同じレベルに更新する必要があります。
一般的なトラブルシューティング手法
次の手順に従ってエラーを分離します。
- セットアップ プロセスの [失敗] 画面から [詳細] を選択します。
- %programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Log フォルダーで、[検出された製品の機能] セクションの下に Summary.txt をチェックして、一覧表示されている機能のいずれかがエラーを報告するかどうかを判断します。 その場合は、その機能に影響を与える問題の解決に焦点を当てることができます。
- yyyyMMdd_HHmmss という名前 のサブフォルダー ( たとえば、20220618_174947) に移動します。これは、注目している報告されたエラー時間に対応します。 目的は、必要に応じて、機能固有のファイル、ERRORLOG ファイル、 Details.txt ファイルを調べることです。
- \MSSQLSERVER サブフォルダーに移動し、失敗した機能に固有のログ ファイルを見つけます。 たとえば、 sql_engine_core_inst_Cpu64_1.log。 アップグレード スクリプトの失敗の場合は、アップグレードエラーの時刻に対応する SQLServer_ERRORLOG_date_time.txt ファイルをチェックします。
- Details.txt ログ ファイルを開き、キーワード (keyword) "Failed" を検索します。すべてのエラーが重要と見なされるわけではありません。
詳細については、「SQL Serverセットアップ ログ ファイルの表示と読み取り」を参照してください。
次のいくつかのセクションでは、状況に対応するシナリオをチェックし、関連するトラブルシューティング手順に従います。 一致するシナリオがない場合は、ログ ファイルでさらにポインターを探します。
エラー 912 と 3417 と "データベース エンジンの復旧ハンドルの待機に失敗しました"
T-SQL アップグレード スクリプトは、すべてのSQL Server累積的な更新プログラムと共に配布されます。 これらは、SQL Server バイナリが最新バージョンに置き換えられた後に実行されます。 これらの T-SQL スクリプトが何らかの理由で実行されない場合、セットアップ プログラムは "データベース エンジンの復旧ハンドルの待機に失敗しました" というエラーを報告します。 セットアップでは、エラー 912 と 3417 が最新のSQL Serverエラー ログに記録されます。 エラー 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 インスタンスを右クリックし、[プロパティ>データベース設定] を選択します。
- [ データベースの既定の場所] で、[ データ と ログ ] のフォルダーが正しいことを確認します。
- SQL Server 構成マネージャーで、[SQL Server サービス] を選択し、影響を受けるSQL Server サービスをダブルクリックし、[詳細設定] タブを選択して、[データ パス] の値が正しいことを確認します。 値は淡色表示され、変更できません。 ただし、修正する場合は、SQLDataRoot レジストリ エントリを変更するために、SQL Server累積的な更新プログラムまたは Service Pack をインストールするときに、レジストリ内のデータディレクトリまたはログ ディレクトリが無効であるというエラーの方法 2 に従ってください。
- CU または SP のインストールを再試行します。
正しく構成されていない Windows Server フェールオーバー クラスタリング (WSFC) ノード
SQL Server フェールオーバー クラスター インスタンス (FCI) の機能とメンテナンスを円滑に行う場合は、「フェールオーバー クラスタリングとフェールオーバー クラスター インスタンスの管理をインストールする前 & メンテナンス」で説明されているベスト プラクティスに従ってください。 CU または SP を適用するときにエラーが発生した場合は、次の条件をチェックします。
- リモート レジストリ サービスがアクティブであり、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のさまざまなバージョンのサービス モデルの詳細については、「SQL Server 更新の増分サービス モデル」および「SQL 2017 以降の最新のサービス モデル」を参照してください。
- SQL Serverを更新する方法の一般的な情報については、「SQL Server サービス 更新のインストール」を参照してください。
- SQL Serverおよびその他の製品のセキュリティ更新プログラムについては、「セキュリティ更新プログラム ガイド」を参照してください。
- Microsoft の更新プログラムに関連付けられている標準的な用語の詳細については、「Microsoft ソフトウェア更新プログラムの説明に使用される標準用語の説明」を参照してください。
- セキュリティの高い環境で発生する可能性があるセットアップの問題を解決するには、「セットアップ アカウントに特定のユーザー権限がない場合SQL Serverインストールが失敗する」を参照してください。