Condividi tramite


L'aggiornamento di SQL Server ha esito negativo e restituisce l'errore 6528

Questo articolo illustra come risolvere l'errore 6528 che si verifica quando si installa un aggiornamento cumulativo (CU) o un Service Pack (SP) per Microsoft SQL Server. L'errore si verifica quando vengono eseguiti gli script di aggiornamento del database.

Sintomi

Quando si applica un cu o un sp per SQL Server, si nota che il programma di installazione segnala uno dei messaggi di errore seguenti nel log degli errori di SQL Server:

SQL server failed in 'Script level upgrade' with the following error:
Error: 50000, Severity: 16, State: 127.
Cannot drop the assembly 'ISSERVER', because it does not exist or you do not have permission.
Error: 50000, Severity: 16, State: 127.
Cannot drop the assembly 'ISSERVER', because it does not exist or you do not have permission.

Creating function internal.is_valid_name
Error: 6528, Severity: 16, State: 1.
Assembly 'ISSERVER' was not found in the SQL catalog of database 'SSISDB'.

Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'ISServer_upgrade.sql' encountered error 6528, 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 error log 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

Questo problema può verificarsi perché l'istanza di SQL Server in cui si tenta di applicare un cu o un sp è mancante assembly ISSERVER.

Per altre informazioni sugli script di aggiornamento del database eseguiti durante un'installazione cu o sp, vedere Risolvere gli errori di script di aggiornamento durante l'applicazione di un aggiornamento.

Risoluzione

Per risolvere il problema, seguire questa procedura:

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

  2. Controllare se l'assembly ISSERVER si trova nel database SSISDB usando la query seguente:

    Use SSISDB
    GO
    SELECT * FROM sys.assemblies WHERE name = 'ISSERVER'
    

    In alternativa, è possibile controllarlo espandendo Database>SSISDB>Programmability>Assemblies>ISSERVER in SQL Server Management Studio (SSMS).

  3. Controllare il percorso C:\Programmi\Microsoft SQL Server\<VersionNumber>\DTS\Bin per verificare se l'assembly Microsoft.SqlServer.IntegrationServices.Server.dll è presente nella cartella binaria SQL.

  4. Se l'assembly si trova in tale cartella ma manca come voce nella vista sys.assemblies , ricrearla usando la query seguente:

    DECLARE @asm_bin varbinary(max);
    SELECT @asm_bin = BulkColumn
    FROM OPENROWSET (BULK N'C:\Program Files\Microsoft SQL Server\<VersionNumber>\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll',SINGLE_BLOB) AS dll
    CREATE ASSEMBLY ISSERVER FROM  @asm_bin  WITH PERMISSION_SET = UNSAFE
    ALTER DATABASE SSISDB SET TRUSTWORTHY ON
    

    Questa volta l'assembly ISSERVER è presente.

  5. Rimuovere il flag di traccia 902 e avviare i servizi.