Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen beim Beheben von Fehlern 15173 oder 15559, die auftreten, wenn Sie ein kumulatives Update (CU) oder Service Pack (SP) für Microsoft SQL Server installieren. Der Fehler tritt auf, wenn Datenbankupgradeskripts ausgeführt werden.
Problembeschreibung
Wenn Sie ein CU oder einen SP für SQL Server anwenden, meldet das Setupprogramm den folgenden Fehler:
Fehler beim Warten auf das Wiederherstellungshandle der Datenbank-Engine. Mögliche Ursachen finden Sie im SQL Server-Fehlerprotokoll.
Wenn Sie das SQL Server-Fehlerprotokoll überprüfen, stellen Sie einen der folgenden Fehlereinträge fest.
Fehlermeldungssatz 1:
Error: 15173, Severity: 16, State: 1.
Server principal '##MS_PolicyEventProcessingLogin##' has granted one or more permission(s). Revoke the permission(s) before dropping the server principal.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 15173, state 1, severity 16. 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.
EventID 3417
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.
Fehlermeldungssatz 2:
Dropping existing Agent certificate ...
Error: 15559, Severity: 16, State: 1.
Cannot drop certificate '##MS_AgentSigningCertificate##' because there is a user mapped to it.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'sqlagent100_msdb_upgrade.sql' encountered error 15559, state 1, severity 16. 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.</br>
SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
Ursache
Dieses Problem tritt auf, da ein Upgradeskript nicht mehr ausgeführt wird, da es den Serverprinzipal (entweder ##MS_PolicyEventProcessingLogin## oder ##MS_AgentSigningCertificate##) nicht ablegen kann. Dieser Fehler tritt auf, da ein Benutzer dem Serverprinzipal zugeordnet ist.
Weitere Informationen zu Datenbankupgradeskripts, die während der CU- oder SP-Installation ausgeführt werden, finden Sie unter Problembehandlung bei Upgradeskriptfehlern beim Anwenden eines Updates.
Lösung
Führen Sie die folgenden Schritte aus, um den Fehler 15173 oder 15559 zu beheben:
Starten Sie SQL Server zusammen mit ablaufverfolgungskennzeichnung (TF) 902. Weitere Informationen finden Sie in den Schritten zum Starten von SQL mit ablaufverfolgungskennzeichnung 902.
Stellen Sie eine Verbindung mit SQL Server her, und führen Sie eine der folgenden Abfragen aus, abhängig vom Serverprinzipal, der in der Fehlermeldung erwähnt wird:
SELECT a.name, b.permission_name FROM sys.server_principals a INNER JOIN sys.server_permissions b ON a.principal_id = b.grantee_principal_id INNER JOIN sys.server_principals c ON b.grantor_principal_id = c.principal_id WHERE c.name = '##MS_PolicyEventProcessingLogin##'SELECT a.name, b.permission_name FROM sys.server_principals a INNER JOIN sys.server_permissions b ON a.principal_id = b.grantee_principal_id INNER JOIN sys.server_principals c ON b.grantor_principal_id = c.principal_id WHERE c.name = '##MS_AgentSigningCertificate##'Führen Sie für jede der Anmeldeinformationen, die in den Abfrageergebnissen angezeigt werden, eine Anweisung aus, z. B. folgendes, um diese Berechtigungen zu widerrufen.
Wenn beispielsweise eine der Abfragen die folgenden Ergebnisse zurückgibt:
Name: Berechtigungsname NT SERVICE\MSSQL$TEST: CONTROL
Führen Sie in diesem Fall eine der folgenden Anweisungen aus:
REVOKE CONTROL ON LOGIN::[##MS_PolicyEventProcessingLogin##] TO [NT SERVICE\MSSQL$TEST] AS [##MS_PolicyEventProcessingLogin##]REVOKE CONTROL ON LOGIN::[##MS_AgentSigningCertificate##] TO [NT SERVICE\MSSQL$TEST] AS [##MS_AgentSigningCertificate]Entfernen Sie TF 902 aus den Startparametern, und starten Sie DANN SQL Server neu. Nachdem SQL Server ohne TF 902 gestartet wurde, wird das Upgradeskript erneut ausgeführt.
Wenn das Upgradeskript erfolgreich abgeschlossen ist, ist das SP- oder CU-Upgrade abgeschlossen. Sie können das SQL Server-Fehlerprotokoll und den Bootstrap-Ordner überprüfen, um die abgeschlossene Installation zu überprüfen.
Wenn das Upgradeskript erneut fehlschlägt, überprüfen Sie das SQL Server-Fehlerprotokoll auf zusätzliche Fehlereinträge, und beheben Sie dann die neuen Fehler.