Delen via


Upgrade van SQL Server mislukt met foutcode 2714 bij het uitvoeren van updatedatabasescripts

In dit artikel wordt een probleem opgelost waarbij een cumulatieve update (CU) of servicepack (SP) fout 2714 rapporteert wanneer u databaseupgradescripts uitvoert.

Symptomen

Wanneer u een CU of SP toepast, kan het installatieprogramma de volgende fout melden:

Wachten op herstelinvoer van database-engine is mislukt. Controleer het SQL Server-foutenlogboek voor mogelijke oorzaken.

Wanneer u het SQL Server-foutenlogboek bekijkt, ziet u mogelijk een van de volgende foutberichten:

2021-07-27 14:08:44.31 spid6s      Error: 2714, Severity: 16, State: 6.
2021-07-27 14:08:44.31 spid6s      There is already an object named 'DatabaseMailUserRole' in the database.
2021-07-27 14:08:44.31 spid6s      Error: 2759, Severity: 16, State: 0.
2021-07-27 14:08:44.31 spid6s      CREATE SCHEMA failed due to previous errors.
2021-07-27 14:08:44.31 spid6s      Error: 912, Severity: 21, State: 2.
2021-07-27 14:08:44.31 spid6s      Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 2714, state 6, 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.
2021-07-27 14:08:44.32 spid6s      Error: 3417, Severity: 21, State: 3.
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.
2021-07-27 14:08:44.31 spid6s      Error: 2714, Severity: 16, State: 6.
2021-07-27 14:08:44.31 spid6s      There is already an object named 'TargetServersRole' in the database.
2021-07-27 14:08:44.31 spid6s      Error: 912, Severity: 21, State: 2.
2021-07-27 14:08:44.31 spid6s      Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 2714, state 6, 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.
2021-07-27 14:08:44.32 spid6s      Error: 3417, Severity: 21, State: 3.
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.

Upgradeprobleem met het DatabaseMailUserRole-schema oplossen

Raadpleeg de volgende informatie om het upgradeprobleem op te lossen dat is gekoppeld aan de DatabaseMailUserRole.

Oorzaak

Deze fout treedt op als een systeemschema, gebruiker of rol onjuist is geconfigureerd in de msdb database.

Dit gebeurt ook wanneer het upgradescript het DatabaseMailUserRole schema in de msdb database niet opnieuw kan maken. Dit probleem kan zich voordoen wanneer het DatabaseMailUserRole schema niet eigendom is van de DatabaseMailUserRole rol, bijvoorbeeld als het schema eigendom is van dbo.

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

Oplossing

  1. Stop SQL Server en start deze opnieuw met behulp van T902. U kunt deze opdracht bijvoorbeeld uitvoeren vanaf een opdrachtprompt:

    Voor een standaardexemplaren:

    NET START MSSQLSERVER /T902
    

    Voor benoemde exemplaren:

    NET START MSSQL$INSTANCENAME  /T902
    
  2. Maak een back-up van uw msdb database als voorzorgsmaatregel.

    BACKUP DATABASE msdb TO disk = '<backup folder>'
    
  3. Open SQL Server Management Studio, maak verbinding met het SQL Server-exemplaar en maak een back-up van de msdb database.

  4. Vouw Database>System Databases>>msdbSecurity>Schemas>DatabaseMailuserRole uit.

  5. Verwijder het schema met de naam DatabaseMailUserRole.

  6. Stop SQL Server en start deze opnieuw zonder de traceringsvlag 902.

    Nadat SQL Server zonder traceringsvlag 902 is gestart, wordt het upgradescript opnieuw uitgevoerd en wordt het DatabaseMailUserRole schema opnieuw gemaakt.

    • Als het SP- of CU-upgradescript is voltooid, controleert u het SQL Server-foutenlogboek en de bootstrapmap om te controleren.
    • Als het upgradescript opnieuw mislukt, controleert u het SQL Server-foutenlogboek op andere fouten en lost u de nieuwe fouten op.

Upgradeprobleem met de rol TargetServersRole oplossen

Raadpleeg de volgende informatie om het upgradeprobleem op te lossen dat is gekoppeld aan de TargetServersRole.

Oorzaak

Deze fout treedt op wanneer het upgradescript de TargetServersRole beveiligingsrol in de msdb database niet opnieuw kan maken. Deze rol wordt gebruikt in omgevingen met meerdere servers. TargetServersRole De beveiligingsrol is standaard eigendom van de dboen de rol is eigenaar van het TargetServersRole schema. Als u deze koppeling per ongeluk wijzigt en de update die u installeert, wijzigingen in een van deze rollen bevat, kan de upgrade mislukken en fout 2714: There is already an object named 'TargetServersRole' in the databaseretourneren. Volg deze stappen om de fout te verhelpen:

Oplossing

  1. Stop SQL Server en start deze opnieuw met behulp van T902.

    Voor een standaardexemplaren:

    NET START MSSQLSERVER /T902
    

    Voor benoemde exemplaren:

    NET START MSSQL$INSTANCENAME /T902
    
  2. Maak een back-up van uw msdb database als voorzorgsmaatregel.

    BACKUP DATABASE msdb TO disk = '<backup folder>'
    
  3. Maak een lijst met gebruikers die momenteel deel uitmaken van deze rol (indien aanwezig). U kunt leden van de rol vermelden door de volgende query uit te voeren:

    EXEC msdb.dbo.sp_helprolemember 'TargetServersRole'
    
  4. Verwijder de TargetServersRole rol met behulp van de volgende instructie:

    EXEC msdb.dbo.sp_droprole @rolename = N'TargetServersRole'
    
  5. Als u wilt controleren of het probleem is opgelost, start u het SQL Server-exemplaar opnieuw zonder traceringsvlag 902te gebruiken.

  6. Voeg de gebruikers van stap 3 opnieuw toe aan TargetServersRole.