Partager via


MSSQLSERVER_912

S’applique à : SQL Server 2019 (15.x) et versions ultérieures - Windows uniquement

Détails

Attribut Valeur
Nom du produit SQL Server
ID de l’événement 912
Source de l’événement MSSQLSERVER
Composant SQLEngine
Nom symbolique DB_RUNSCRIPTUPGRADE_STEP_FAILED
Texte du message La mise à niveau du niveau de script pour la base de données '%.*ls' a échoué, car l'étape de mise à niveau '%.*ls' a rencontré l'erreur %d, état %d, gravité %d. Il s'agit d'une condition d'erreur grave qui peut interférer avec un fonctionnement normal et la base de données sera mise hors connexion. Si l'erreur s'est produite lors de la mise à niveau de la base de données 'master', elle empêche le démarrage de l'intégralité de l'instance de SQL Server. Examinez les entrées précédentes du journal des erreurs à la recherche d'erreurs, prenez les actions correctives appropriées et redémarrez la base de données afin que les étapes de mise à niveau de script soient exécutées jusqu'à la fin.

Explication

L’erreur 912 indique que le script de base de données n’a pas pu être exécuté et que la ou les bases de données ont été mises à niveau vers le dernier niveau requis par le serveur. Il s’agit d’un message d’erreur général qui contient une référence au script de mise à niveau qui a échoué et l’erreur rencontrée par ce script.

Lorsque SQL Server est mis à niveau ou qu’une mise à jour cumulative est appliquée, seuls les fichiers binaires sont mis à niveau initialement. La base de données et ses objets ne sont pas modifiés. Une fois que les fichiers binaires ont été remplacés par les nouvelles versions, lorsque le service redémarre pour la première fois, une mise à niveau de base de données démarre. Les scripts de mise à niveau à exécuter se trouvent sous C:\Program Files\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Install.

Si le processus de mise à niveau rencontre des erreurs de mise à niveau au niveau du script (erreur 912), d’autres erreurs peuvent être générées. Par exemple, ces erreurs peuvent accompagner l’erreur 912 et expliquent plus en détail l’échec :

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.

Généralement, lorsque le processus d’installation échoue, l’utilisateur peut voir l’erreur suivante dans l’interface graphique graphique, en supposant que l’installation est effectuée manuellement à l’aide de l’Assistant. Gardez à l’esprit que cette erreur peut être générée avec un large éventail de problèmes d’installation. Mais dans tous les cas, il vous dirige vers case activée le journal des erreurs SQL Server pour plus d’informations.

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

Échec de mise à niveau dans l’interface graphique graphique

Action requise

Pour trouver la cause du problème, procédez comme suit :

  1. Recherchez et ouvrez le SQL Server Errorlog.
  2. Examinez le journal pour les erreurs qui se sont produites immédiatement avant l’erreur 912 et concentrez-vous sur la résolution des problèmes de l’erreur référencée dans la messagerie de l’erreur 912.
  3. Pour certains scénarios courants signalés par les clients Microsoft, consultez « Échec de l’attente sur le handle de récupération du moteur de base de données » et « 912 » et « 3417 »
  4. Dans certains cas, dans le cadre du processus, vous devrez peut-être démarrer le service SQL Server avec l’indicateur de trace 902 (voir les étapes ci-dessous). Le démarrage du service avec T902 permet au service d’ignorer l’exécution des scripts de mise à niveau au démarrage. De cette façon, vous avez la possibilité d’examiner et de résoudre le problème sous-jacent.
  5. Veillez à supprimer l’indicateur de trace une fois que vous avez résolu le problème afin que le processus d’installation puisse redémarrer la phase d’exécution du script de mise à niveau.

Étapes à suivre pour démarrer SQL Server avec l’indicateur de trace 902

Utilisation de Configuration Manager

  1. Lancez le Gestionnaire de configuration SQL Server.
  2. Sélectionnez l’instance SQL Server dans Services SQL Server.
  3. Faites un clic droit sur l’instance puis sélectionnez Propriétés.
  4. Sélectionnez l’onglet Paramètres de démarrage.
  5. Utilisez le champ Spécifier un paramètre de démarrage pour ajouter l’indicateur de trace. Tapez « -T902 » (sans guillemets), puis cliquez sur Ajouter.
  6. Sélectionnez OK et fermez les propriétés de l’instance.
  7. Démarrez le service SQL Server.

Pour plus d’informations sur la configuration des options de démarrage, consultez Configuration Manager pour les services SQL : configurer les options de démarrage du serveur

Notes

Veillez à supprimer -T902 de la configuration une fois que vous avez résolu le problème.

Invite de commandes avec sqlservr.exe

  1. Ouvrez une invite de commandes avec des privilèges administratifs et accédez au répertoire SQL Server Binn, par exemple C:\Program Files\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Binn.

  2. Exécutez sqlservr.exe -s <instance> -T902

    Instance par défaut :

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

    Instance nommée, où « sql2016 » est un exemple de nom d’instance :

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Pour arrêter l’instance lorsque vous avez terminé, appuyez sur CTRL+C, puis sur Y

Invite de commandes avec net start

Instance par défaut :

NET START MSSQLSERVER /T902 

Instance nommée :

NET START MSSQL$INSTANCENAME  /T902