Sdílet prostřednictvím


MSSQLSERVER_912

Platí pro: SQL Server 2019 (15.x) a novější verze ve Windows

Podrobnosti

Vlastnost Hodnota
Název produktu SQL Server
ID události 912
Zdroj událostí MSSQLSERVER
Součást SQLEngine
Symbolický název DB_RUNSCRIPTUPGRADE_STEP_FAILED
Text zprávy Úroveň skriptu pro databázi%.*ls selhala, protože během kroku upgradu%.*ls došlo k chybě %d, stavu %d, závažnosti %d. Jedná se o závažný chybový stav, který může narušit pravidelnou operaci a databáze bude přesměrována do režimu offline. Pokud k chybě došlo během upgradu hlavní databáze, zabrání spuštění celé instance SQL Serveru. Zkontrolujte předchozí položky protokolu chyb, zkontrolujte chyby, proveďte příslušné opravné akce a znovu spusťte databázi, aby se kroky upgradu skriptu spustily k dokončení.

Explanation

Chyba 912 znamená, že databázový skript nebyl spuštěn a nebyl aktualizován databáze na nejnovější úroveň požadovanou serverem. Jedná se o obecnou chybovou zprávu, která obsahuje odkaz na neúspěšný upgrade skript a na chybu, na kterou se neúspěšný skript setkal.

Když je SQL Server aktualizován nebo je aplikována kumulativní aktualizace, zpočátku se aktualizují pouze binární soubory. Databáze a její objekty zůstávají nezměněné. Jakmile jsou binárky nahrazeny novými verzemi a služba se poprvé restartuje, začíná aktualizace databáze. Skripty pro upgrade, které mají být vykonány, se nacházejí v C:\Program Files\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Install.

Pokud proces upgradu narazí na chyby na úrovni skriptu (Error 912), mohou být nahlášeny další chyby. Například tyto chyby mohou doprovázet chybu 912 a pomoci dále vysvětlit její selhání:

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.

Běžně, když instalace selže, uživatel může v GUI vidět následující chybu, za předpokladu, že instalace probíhá ručně pomocí Průvodce. Mějte na paměti, že tato chyba může být vyvolána při různých instalačních problémech. Ale ve všech případech vás nasměruje na kontrolu chybového logu SQL Serveru pro více informací.

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

Selhání upgradu v GUI

Akce uživatele

Chcete-li najít příčinu problému, postupujte podle těchto kroků:

  1. Najděte a otevřete chybový log SQL Serveru.
  2. Prohlédněte si záznam kvůli chybám, které se objevily těsně před chybou 912, a zaměřte se na řešení chyby uvedené ve zprávě Error 912.
  3. Pro některé běžné scénáře, které zákazníci Microsoftu hlásili, viz chyby "Wait on Database Engine recovery handle failed" a "912" a "3417"
  4. V některých případech může být v rámci procesu nutné spustit službu SQL Server s trace flagem 902 (viz kroky níže). Spuštění služby pomocí T902 umožňuje službě přeskočit provádění aktualizačních skriptů při startu. Tím získáte šanci prozkoumat a vyřešit základní problém.
  5. Jakmile problém vyřešíte, určitě odstraňte trail trail, aby proces instalace mohl restartovat fázi provádění upgradního skriptu.

Kroky pro spuštění SQL Serveru s trace flagem 902

Použití Configuration Manager

  1. Spusť SQL Server Configuration Manager.
  2. Vyberte instanci SQL Serveru v SQL Server Services.
  3. Klikněte pravým tlačítkem na instanci a vyberte Vlastnosti.
  4. Vyberte kartu Parametry spuštění .
  5. Použijte pole Specifikujte počáteční parametr pro přidání příznaku trasy. Napište "-T902" (bez uvozovek) a klikněte na Add.
  6. Vyberte OK a zavřete vlastnosti instance.
  7. Spusť službu SQL Server.

Pro více informací o konfiguraci možností spuštění viz SQL Configuration Manager Services - Configure Server Startup Options

Poznámka:

Nezapomeňte -T902 z konfigurace odstranit, jakmile problém vyřešíte.

Příkazový řádek pomocí sqlservr.exe

  1. Otevřete příkazový řádek s administrátorskými oprávněními a přepněte adresář na adresář SQL Server Binn, například C:\Program Files\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Binn.

  2. Provést sqlservr.exe -s <instance> -T902

    Výchozí instance:

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

    Jmenovaná instance, kde "sql2016" je příkladem názvu instance:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Pro zastavení instance po dokončení stiskněte CTRL+C , pak Y

Použití příkazového řádku net start

Výchozí instance:

NET START MSSQLSERVER /T902 

Jmenovaná instance:

NET START MSSQL$INSTANCENAME  /T902