Delen via


MSSQLSERVER_912

Van toepassing op: SQL Server 2019 (15.x) en latere versies in Windows

Bijzonderheden

Attribute Waarde
Productnaam SQL Server
Gebeurtenis-id 912
Bron van gebeurtenis MSSQLSERVER
Onderdeel SQLEngine
Symbolische naam DB_RUNSCRIPTUPGRADE_STEP_FAILED
Berichttekst Upgrade op scriptniveau voor database '%.*ls' is mislukt omdat de upgradestap '%.*ls' tegen de fout aanliep %d, status %d, ernst %d. Dit is een ernstige foutsituatie die de normale werking kan verstoren, waardoor de database offline zal worden gehaald. Als de fout is opgetreden tijdens de upgrade van de hoofddatabase, wordt voorkomen dat het hele SQL Server-exemplaar wordt gestart. Bekijk de vorige vermeldingen in het foutenlogboek voor fouten, voer de juiste corrigerende acties uit en start de database opnieuw, zodat de scriptupgradestappen worden uitgevoerd tot voltooiing.

Explanation

Fout 912 geeft aan dat het databasescript niet is uitgevoerd en dat de database(s) niet zijn geüpgraded naar het laatste niveau dat door de server vereist is. Het is een algemeen foutbericht dat een verwijzing bevat naar het upgrade-script dat faalde en welke fout het mislukte script ondervond.

Wanneer SQL Server wordt geüpgraded of een cumulatieve update wordt toegepast, worden alleen de binaries aanvankelijk geüpgraded. De database en haar objecten blijven ongewijzigd. Zodra de binaries zijn vervangen door nieuwe versies en de service voor het eerst opnieuw wordt opgestart, wordt een database-upgrade gestart. De upgrade-scripts die uitgevoerd moeten worden, bevinden zich onder C:\Program Files\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Install.

Als het upgradeproces script-level upgradefouten tegenkomt (fout 912), kunnen er andere fouten worden gegenereerd. Deze fouten kunnen bijvoorbeeld gepaard gaan met fout 912 en helpen de fout verder te verklaren:

Error: 1101, Severity: 17, State: 1.
Could not allocate a new page for database 'tempdb' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

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

Vaak kan de gebruiker bij mislukking van de installatie de volgende fout in de GUI zien, ervan uitgaande dat de installatie handmatig wordt uitgevoerd met de Wizard. Houd er rekening mee dat deze fout kan worden opgeroepen bij allerlei installatieproblemen. Maar in alle gevallen wordt je doorgestuurd naar het SQL Server-foutlogboek voor meer informatie.

Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.

upgradestoring in de GUI

Gebruikersactie

Om de oorzaak van het probleem te vinden, volgt u deze stappen:

  1. Zoek en open de SQL Server Errorlog.
  2. Onderzoek het logboek op fouten die direct vóór fout 912 optraden en richt je op het oplossen van de fout waarnaar wordt verwezen in de berichtgeving van fout 912.
  3. Voor enkele veelvoorkomende scenario's die Microsoft-klanten hebben gemeld, zie "Wacht op Database Engine herstelhandvat mislukt" en fouten "912" en "3417"
  4. In sommige gevallen moet je als onderdeel van het proces de SQL Server-service starten met trace-vlag 902 (zie onderstaande stappen). Door de service te starten met T902 kan de service de uitvoering van de upgrade-scripts tijdens het opstarten overslaan. Op die manier krijg je de kans om het onderliggende probleem te onderzoeken en op te lossen.
  5. Zorg ervoor dat je de trace-vlag verwijdert zodra je het probleem hebt opgelost, zodat het installatieproces de uitvoeringsfase van het upgrade-script opnieuw kan starten.

Stappen om SQL Server te starten met trace-vlag 902

Configuration Manager gebruiken

  1. Start SQL Server Configuration Manager.
  2. Selecteer de SQL Server-instantie in SQL Server Services.
  3. Klik met de rechtermuisknop op de instantie en selecteer vervolgens Eigenschappen.
  4. Selecteer het tabblad Opstartparameters .
  5. Gebruik het veld 'Specificeer een opstartparameter ' om de trace-vlag toe te voegen. Typ "-T902" (zonder aanhalingstekens) en klik op Toevoegen.
  6. Selecteer OK en sluit de eigenschappen van de instantie.
  7. Start de SQL Server-service.

Voor meer informatie over hoe je opstartopties configureert, zie SQL Configuration Manager Services - Configureer Server Startup Options

Opmerking

Zorg ervoor dat je -T902 uit de configuratie verwijdert zodra je het probleem hebt opgelost.

Opdrachtprompt met sqlservr.exe

  1. Open een opdrachtprompt met beheerdersrechten en verander de map naar de SQL Server Binn-directory, bijvoorbeeld C:\Program Files\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Binn.

  2. Voer de sqlservr.exe -s <instance> -T902

    Standaardinstantie:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>\MSSQL\Binn
    sqlservr.exe -s MSSQLSERVER  -T902
    

    Named Instance, waarbij "sql2016" een voorbeeld is van een instantienaam:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Om de instance te stoppen als je klaar bent, druk CTRL+C je op , dan Y

Commandoprompt met behulp van net start

Standaardinstantie:

NET START MSSQLSERVER /T902 

Genoemd exemplaar:

NET START MSSQL$INSTANCENAME  /T902