Freigeben über


MSSQLSERVER_912

Gilt für: SQL Server 2019 (15.x) und höher – nur Windows

Details

attribute Wert
Produktname SQL Server
Ereignis-ID 912
Ereignisquelle MSSQLSERVER
Komponente SQLEngine
Symbolischer Name DB_RUNSCRIPTUPGRADE_STEP_FAILED
Meldungstext Fehler beim Upgrade auf Skriptebene für die Datenbank '%.*ls', da beim Upgradeschritt '%.*ls' fehler %d, Status %d, Schweregrad %d aufgetreten ist. Dies ist ein schwerwiegender Fehler, der möglicherweise die normalen Vorgänge beeinträchtigt, und die Datenbank wird offline geschaltet. Wenn der Fehler während des Upgrades der master-Datenbank aufgetreten ist, wird dadurch das Starten der gesamten SQL Server-Instanz verhindert. Überprüfen Sie die vorherigen Fehlerprotokolleinträge auf Fehler, ergreifen Sie die entsprechenden Korrekturmaßnahmen, und starten Sie die Datenbank neu, damit die Schritte zum Aktualisieren des Skripts vollständig ausgeführt werden.

Erklärung

Fehler 912 gibt an, dass das Datenbankskript nicht ausgeführt werden konnte, und dass die Datenbank(en) auf die neueste Ebene aktualisiert werden, die vom Server benötigt wird. Es handelt sich um eine allgemeine Fehlermeldung, die einen Verweis auf das fehlgeschlagene Upgradeskript sowie den im fehlerhaften Skript aufgetretenen Fehler enthält.

Wenn SQL Server aktualisiert oder ein kumulatives Update angewendet wird, werden zunächst nur die Binärdateien aktualisiert. Die Datenbank mit ihren Objekten bleibt unverändert. Sobald die Binärdateien durch neue Versionen ersetzt wurden und der Dienst zum ersten Mal neu gestartet wird, wird ein Datenbankupgrade gestartet. Die auszuführenden Upgradeskripts befinden sich unter „C:\Programme\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Install“.

Wenn beim Upgradevorgang Upgradefehler auf Skriptebene auftreten (Fehler 912), können weitere Fehler ausgelöst werden. Beispielsweise können folgende Fehler zusammen mit Fehler 912 auftreten und helfen, den Fehler weiter zu erklären:

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.

Wenn der Installationsprozess fehlschlägt, wird dem Benutzer möglicherweise der folgende Fehler in der GUI angezeigt, vorausgesetzt, die Installation erfolgt manuell mithilfe des Assistenten. Beachten Sie, dass dieser Fehler möglicherweise mit einer Vielzahl von Installationsproblemen ausgelöst wird. In allen Fällen werden Sie jedoch aufgefordert, das SQL Server-Fehlerprotokoll auf weitere Informationen zu überprüfen.

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

Upgradefehler in der GUI

Aktion des Benutzers

Führen Sie die folgenden Schritte aus, um die Ursache des Problems zu finden:

  1. Suchen und öffnen Sie den SQL Server-Fehlerprotokoll.
  2. Untersuchen Sie das Protokoll auf Fehler, die unmittelbar vor Fehler 912 aufgetreten sind, und konzentrieren Sie sich auf die Problembehandlung des Fehlers, auf den in der Meldung von Fehler 912 verwiesen wird.
  3. Einige häufige Szenarien, die Microsoft-Kunden gemeldet haben, finden Sie unter "Warten auf Datenbank-Engine Wiederherstellungshandle fehlgeschlagen" und "912" und "3417"-Fehler
  4. In einigen Fällen müssen Sie im Rahmen des Prozesses möglicherweise den SQL Server-Dienst mit ablaufverfolgungskennzeichnung 902 starten (siehe schritte unten). Wenn Sie den Dienst mit T902 starten, kann der Dienst die Ausführung der Upgradeskripts während des Starts überspringen. Auf diese Weise erhalten Sie die Möglichkeit, das zugrunde liegende Problem zu untersuchen und zu beheben.
  5. Entfernen Sie das Ablaufverfolgungskennzeichnung, nachdem Sie das Problem behoben haben, damit der Setupprozess die Ausführungsphase des Upgradeskripts neu starten kann.

Schritte zum Starten von SQL Server mit Ablaufverfolgungskennzeichnung 902

Verwenden von Configuration Manager

  1. Starten Sie den SQL Server-Konfigurations-Manager.
  2. Wählen Sie die SQL Server-Instanz in SQL Server Services aus.
  3. Klicken Sie mit der rechten Maustaste auf die Instanz, und wählen Sie Eigenschaften aus.
  4. Wählen Sie die Registerkarte Startparameter aus.
  5. Verwenden Sie das Feld Startparameter angeben, um das Ablaufverfolgungsflag hinzuzufügen. Geben Sie "-T902" (ohne Anführungszeichen) ein, und klicken Sie auf "Hinzufügen".
  6. Wählen Sie OK aus, und schließen Sie die Instanzeigenschaften.
  7. Starten Sie den SQL Server-Dienst.

Weitere Informationen zum Konfigurieren von Startoptionen finden Sie unter SQL Configuration Manager-Dienste – Konfigurieren von Serverstartoptionen.

Hinweis

Entfernen Sie „-T902“ aus der Konfiguration, nachdem Sie das Problem behoben haben.

Eingabeaufforderung unter Verwendung von „sqlservr.exe“

  1. Öffnen Sie eine Eingabeaufforderung mit Administratorrechten, und wechseln Sie in das Verzeichnis „SQL Server-Binn“, z. B. „C:\Programme\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Binn“.

  2. Führen Sie sqlservr.exe -s <instance> -T902 aus.

    Standardinstanz:

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

    Benannte Instanz, wobei „sql2016“ ein Beispiel für einen Instanznamen ist:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Wenn Sie die Instanz beenden möchten, drücken Sie CTRL+C und dann Y.

Befehlszeile unter Verwendung von net start

Standardinstanz:

NET START MSSQLSERVER /T902 

Benannte Instanz:

NET START MSSQL$INSTANCENAME  /T902