Delen via


Upgrade van SQL Server mislukt en retourneert fout 6528

Dit artikel helpt u bij het oplossen van fouten 6528 die optreden wanneer u een cumulatieve update (CU) of servicepack (SP) voor Microsoft SQL Server installeert. De fout treedt op wanneer databaseupgradescripts worden uitgevoerd.

Symptomen

Wanneer u een CU of een SP toepast voor SQL Server, ziet u dat het installatieprogramma een van de volgende foutberichten in het SQL Server-foutenlogboek rapporteert:

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.

Oorzaak

Dit probleem kan optreden omdat het SQL Server-exemplaar waarop u een CU of een SP probeert toe te passen, assembly ontbreekt ISSERVER.

Zie Problemen met upgradescripts bij het toepassen van een update oplossen voor meer informatie over database-upgradescriptscripts die worden uitgevoerd tijdens een CU- of SP-installatie.

Oplossing

Volg deze stappen om het probleem op te lossen:

  1. Start SQL Server met traceringsvlag 902.

  2. Controleer of de assembly ISSERVER zich in de database SSISDB bevindt met behulp van de volgende query:

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

    U kunt dit ook controleren door Databases>SSISDB>Programmebility>Assembly's>ISSERVER uit te vouwen in SQL Server Management Studio (SSMS).

  3. Controleer de locatie C:\Program Files\Microsoft SQL Server\<VersionNumber>\DTS\Bin om te zien of de assembly-Microsoft.SqlServer.IntegrationServices.Server.dll aanwezig is in de binaire map van SQL.

  4. Als de assembly zich in die map bevindt, maar ontbreekt als een vermelding in de weergave sys.assembly's , maakt u deze opnieuw met behulp van de volgende query:

    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
    

    Deze keer is de assembly ISSERVER aanwezig.

  5. Verwijder traceringsvlag 902 en start de services.