Partager via


La mise à niveau de SQL Server échoue et retourne l’erreur 6528

Cet article vous aide à résoudre et résoudre l’erreur 6528 qui se produit lors de l’installation d’une mise à jour cumulative (CU) ou d’un service pack (SP) pour Microsoft SQL Server. L’erreur se produit lorsque des scripts de mise à niveau de base de données sont exécutés.

Symptômes

Lorsque vous appliquez une cu ou un fournisseur de services pour SQL Server, vous notez que le programme d’installation signale l’un des messages d’erreur suivants dans le journal des erreurs 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.

Cause

Ce problème peut se produire parce que l’instance SQL Server où vous essayez d’appliquer une cu ou un fournisseur de services est manquant ISSERVER.

Pour plus d’informations sur les scripts de mise à niveau de base de données qui s’exécutent lors d’une installation de cu ou d’un fournisseur de services, consultez Résoudre les échecs de script de mise à niveau lors de l’application d’une mise à jour.

Résolution

Procédez comme suit pour résoudre le problème :

  1. Démarrez SQL Server avec l’indicateur de trace 902.

  2. Vérifiez si l’assembly ISSERVER se trouve dans la base de données SSISDB à l’aide de la requête suivante :

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

    Vous pouvez également le vérifier en développant >des assemblys>de programmabilité>SSISDB SSISDB> dans SQL Server Management Studio (SSMS).

  3. Vérifiez l’emplacement C :\Program Files\Microsoft SQL Server\<VersionNumber>\DTS\Bin pour voir si l’assembly Microsoft.SqlServer.IntegrationServices.Server.dll est présent dans le dossier binaire SQL.

  4. Si l’assembly se trouve dans ce dossier, mais qu’il manque une entrée dans la vue sys.assemblys , recréez-le à l’aide de la requête suivante :

    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
    

    Cette fois, l’assembly ISSERVER est présent.

  5. Supprimez l’indicateur de trace 902 et démarrez les services.