Freigeben über


Sql Server-Upgrade schlägt fehl, wenn zertifikatbasierte Prinzipale eigene Benutzerobjekte

Dieser Artikel hilft Ihnen bei der Behebung eines Problems, bei dem ein kumulatives Update (CU) oder Service Pack (SP) für SQL Server fehler 574 meldet, wenn Sie Datenbankupgradeskripts ausführen.

Problembeschreibung

Wenn Sie ein CU oder SP für SQL Server anwenden, gibt das Setupprogramm die folgende Fehlermeldung zurück:

Fehler beim Warten auf das Wiederherstellungshandle der Datenbank-Engine. Mögliche Ursachen finden Sie im SQL Server-Fehlerprotokoll.

Darüber hinaus werden die folgenden Fehlereinträge möglicherweise zusammen mit Fehlern 912 und 3417 im SQL Server-Fehlerprotokoll protokolliert:

  • 15136 The database principal is set as the execution context of one or more procedures, functions, or event notifications and cannot be dropped.
  • 15138 The database principal owns a %S_MSG in the database, and cannot be dropped.
  • 15141 The server principal owns one or more %S_MSG(s) and cannot be dropped.
  • 15154 The database principal owns an %S_MSG and cannot be dropped.
  • 15155 The server principal owns a %S_MSG and cannot be dropped.
  • 15183 The database principal owns objects in the database and cannot be dropped.
  • 15184 The database principal owns data types in the database and cannot be dropped.
  • 15186 The server principal is set as the execution context of a trigger or event notification and cannot be dropped.
  • 15284 The database principal has granted or denied permissions to objects in the database and cannot be dropped.
  • 15421 The database principal owns a database role and cannot be dropped.
  • 27226 The database principal has granted or denied permissions to catalog objects in the database and cannot be dropped.
  • 33015 The database principal is referenced by a %S_MSG in the database, and cannot be dropped.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'SSIS_hotfix_install.sql' encountered error 945, state 2, 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 shutdown has been initiated

Ursache

Serverprinzipale, die in doppelte Hashmarken (##) eingeschlossen sind, werden aus Zertifikaten erstellt, wenn SQL Server installiert wird. Diese Prinzipale werden als vom System erstellte Prinzipale behandelt. Sie dürfen nicht datenbankprinzipalen zugeordnet werden, die Benutzerobjekte in msdb oder anderen Datenbanken besitzen. Änderungen an dieser Standardkonfiguration können zu Fehlern führen, wenn Sie versuchen, SQL Server zu aktualisieren. Dies liegt daran, dass die Upgradeskripts davon ausgehen, dass diese Objekte nur Abhängigkeiten aufweisen, die von SQL Server erstellt werden.

Lösung

  1. Starten Sie SQL Server mithilfe des Ablaufverfolgungskennzeichnungs 902.

  2. Führen Sie den folgenden Befehl aus, um die Zuordnung von Serverprinzipalen zu Datenbankprinzipalen zu ermitteln:

    EXEC master.sys.sp_helplogins 
    
  3. Ändern Sie den Besitz der betroffenen Objekte in einen anderen Benutzer.

  4. Starten Sie SQL Server ohne Ablaufverfolgungskennzeichnung 902 neu, damit das Upgradeskript die Ausführung beenden kann.

Notiz

Obwohl ein Fehler beim Ausführen von Upgradeskripts eine der häufigsten Ursachen des Fehlers "Fehler beim Warten auf Datenbank-Engine Wiederherstellungshandle" ist, kann dieses Problem auch aus anderen Gründen auftreten. Der Fehler bedeutet, dass der Updateinstallationsprogramm den Dienst nicht starten oder nach der Installation des Updates online schalten konnte. In beiden Fällen umfasst die Problembehandlung eine Überprüfung der Fehlerprotokolle und Setupprotokolle, um die Ursache des Fehlers zu ermitteln und geeignete Maßnahmen zu ergreifen.

Siehe auch

Behandeln von Upgrade-Skriptfehlern beim Anwenden eines Updates