Condividi tramite


L'aggiornamento di SQL Server ha esito negativo se le entità basate su certificati sono proprietari di oggetti utente

Questo articolo illustra come risolvere un problema in cui un aggiornamento cumulativo (CU) o un Service Pack (SP) per SQL Server segnala l'errore 574 quando si eseguono script di aggiornamento del database.

Sintomi

Quando si applica un CU o SP per SQL Server, il programma di installazione restituisce il messaggio di errore seguente:

Attesa dell'handle di recupero del Motore di database non riuscita. Controllare il log degli errori di SQL Server per individuare le possibili cause.

Inoltre, le voci di errore seguenti potrebbero essere registrate nel log degli errori di SQL Server insieme agli errori 912 e 3417:

  • 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

Causa

Le entità server racchiuse all'interno di doppio hash mark (##) vengono create dai certificati quando SQL Server è installato. Queste entità devono essere considerate come entità create dal sistema. Non è necessario eseguirne il mapping alle entità di database proprietarie di oggetti utente in msdb o in altri database. Eventuali modifiche apportate a questa configurazione predefinita potrebbero causare errori quando si tenta di aggiornare SQL Server. Questo perché gli script di aggiornamento presuppongono che questi oggetti abbiano solo dipendenze create da SQL Server.

Risoluzione

  1. Avviare SQL Server usando il flag di traccia 902.

  2. Per determinare il mapping delle entità server alle entità di database, eseguire il comando seguente:

    EXEC master.sys.sp_helplogins 
    
  3. Modificare la proprietà degli oggetti interessati in un utente diverso.

  4. Riavviare SQL Server senza flag 902 di traccia in modo che lo script di aggiornamento possa terminare l'esecuzione.

Note

Anche se un errore di esecuzione degli script di aggiornamento è una delle cause comuni dell'errore "Wait on motore di database recovery handle failed", questo problema può verificarsi anche per altri motivi. L'errore indica che il programma di installazione dell'aggiornamento non è riuscito ad avviare il servizio o portarlo online dopo l'installazione dell'aggiornamento. In entrambi i casi, la risoluzione dei problemi comporta una revisione dei log degli errori e dei log di installazione per determinare la causa dell'errore e intervenire in modo appropriato.

Vedi anche

Risolvere gli errori dello script di aggiornamento in fase di aggiornamento