更新データベース スクリプトの実行時にエラー 5133 で SQL Server のアップグレードが失敗する
この記事は、データベース アップグレード スクリプトの実行時に SQL Server の累積的な更新プログラム (CU) または Service Pack (SP) がエラー 5133 を報告する問題のトラブルシューティングと解決に役立ちます。
現象
CU または SP を適用すると、セットアップ プログラムで次のエラーが報告されることがあります。
データベース エンジンの復旧ハンドルの待機に失敗しました。 考えられる原因については、SQL Server エラー ログを確認してください
SQL Server エラー ログを確認すると、次のエラー メッセージが表示されることがあります。
Error: 5133, Severity: 16, State: 1
Directory lookup for the file "<path>\MSSQL10.<Instancename>\MSSQL\Data\temp_MS_AgentSigningCertificate_database.mdf" failed with the operating system error 3(The system cannot find the path specified.).
Error: 1802, Severity: 16, State: 1.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'sqlagent100_msdb_upgrade.sql' encountered error 598, state 1, severity 25.
This is a serious error condition which might interfere with regular operation and the database will be taken offline.
If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting.
Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
Error: 3417, Severity: 21, State: 3.
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
原因
SQL Server では、ファイルのディレクトリを特定しようとしたときにオペレーティング システム エラーが発生すると、エラー 5133 が報告されます。
SQL Server では、
Note
イベントとエラーデータベース エンジンからError 598: An error occurred while executing CREATE/ALTER DB. Please look at the previous error for more information
を確認できます。
エラー 598 より前のエントリは、エラーの原因に関する詳細情報を提供できます。 たとえば、この記事では、上記のエラーは 1802 です。これは、アップグレード スクリプトが既定のデータ パスに一時データベースを作成できないために発生します。 一時データベースは、更新プロセス中に実行されるさまざまな操作に対してセットアップ プログラムによって使用されます。 CU または SP のインストール中に実行されるデータベース アップグレード スクリプトの詳細については、「 更新プログラムの適用時のアップグレード スクリプトエラーのトラブルシューティングを参照してください。
解決方法
Data Path プロパティが SQL Server で有効で正しい値で構成されていることを確認します。
SQL Server 構成マネージャーから:
SQL Server 構成マネージャーを開き、 [SQL Server のサービス] をクリックします。
SQL Server インスタンスを右クリックし、 Properties を選択します。
[Advanced] タブを選択し、Data Path の値が正しく、入力ミスや余分な文字がないことを確認します。 (値を検証するには、値をコピーし、Windows エクスプローラーでアクセスを試みることができます)。
Windows レジストリ エディターから:
タスク バーの [ Search ボックスに「 regedit 」と入力して、 Registry エディターを開きます。
既定のデータ パスのレジストリ キーに移動します。 次に、パスが正しく、余分なスペースや文字がないことを確認します。 既定のデータ パスのレジストリ キーは
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<Instance Name>\Setup\SQLDataRoot
。レジストリ キーに正しいデータ パスがあり、エラーが引き続き発生する場合は、次の手順に従います。
レジストリ キー (
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<Instance Name>\MSSQLServer\Parameters
) に移動します。Data Path の値を確認し、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<Instance Name>\Setup\SQLDataRoot
の値と一致するように変更します。
SQL Server インスタンスを再起動します。
SQL Server インスタンスが起動すると、アップグレード スクリプトが再度実行されます。
- SP または CU アップグレード スクリプトが正常に完了した場合は、SQL Server エラー ログとブートストラップ フォルダーを確認して確認できます。
- アップグレード スクリプトが再度失敗した場合は、SQL Server エラー ログで他のエラーがないか確認し、新しいエラーのトラブルシューティングを行います。