MSSQLSERVER_912

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores: solo Windows

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 912
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico DB_RUNSCRIPTUPGRADE_STEP_FAILED
Texto del mensaje Error en la actualización de nivel de script para la base de datos "%.*ls" porque el paso de actualización "%.*ls" encontró el error %d, estado %d, gravedad %d. Se trata de una condición de error grave que podría interferir con las operaciones normales y dejar la base de datos sin conexión. Si el error se produjo durante la actualización de la base de datos 'maestra', impedirá que se inicie toda la instancia de SQL Server. Examine las entradas anteriores del registro de errores, emprenda las acciones correctivas adecuadas y reinicie la base de datos de forma que se puedan completar los pasos de actualización del script.

Explicación

El error 912 indica que no se pudo ejecutar el script de base de datos y actualizar las bases de datos al nivel más reciente requerido por el servidor. Es un mensaje de error general que contiene una referencia al script de actualización que no se pudo ejecutar y el error con el que se encontró este.

Cuando se actualiza SQL Server o se aplica una actualización acumulativa, solo se actualizan inicialmente los archivos binarios. La base de datos y sus objetos permanecen sin modificar. Una vez que los archivos binarios se reemplazan por nuevas versiones y el servicio se reinicia por primera vez, se inicia una actualización de la base de datos. Los scripts de actualización que se van a ejecutar se encuentran en C:\Archivos de programa\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Install.

Si el proceso de actualización encuentra errores de actualización de nivel de script (error 912), se pueden producir otros errores. Por ejemplo, estos errores pueden acompañan al error 912 y ayudan a explicar el error:

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.

Normalmente, cuando se produce un error en el proceso de instalación, el usuario puede ver el siguiente error en la GUI, suponiendo que la instalación se realiza manualmente mediante el Asistente. Tenga en cuenta que este error puede producirse con una amplia variedad de problemas de instalación. Pero en todos los casos le dirige a comprobar el registro de errores de SQL Server para obtener más información.

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

error de actualización en la GUI

Acción del usuario

Para encontrar la causa del problema, siga estos pasos:

  1. Busque y abra el registro de errores de SQL Server.
  2. Examine el registro de errores que se produjeron inmediatamente antes del error 912 y céntrese en solucionar el error al que se hace referencia en la mensajería del error 912.
  3. Para ver algunos escenarios comunes que han notificado los clientes de Microsoft, consulte "Wait on Motor de base de datos recovery handle failed" (Error de espera en Motor de base de datos identificador de recuperación) y "912" y "3417"
  4. En algunos casos, como parte del proceso, es posible que tenga que iniciar el servicio SQL Server con la marca de seguimiento 902 (consulte los pasos siguientes). Iniciar el servicio con T902 permite que el servicio omita la ejecución de los scripts de actualización durante el inicio. De este modo, tendrá la oportunidad de investigar y corregir el problema subyacente.
  5. Asegúrese de quitar la marca de seguimiento una vez que haya resuelto el problema para que el proceso de instalación pueda reiniciar la fase de ejecución del script de actualización.

Pasos para iniciar SQL Server con la marca de seguimiento 902

Uso de Configuration Manager

  1. Inicie el Administrador de configuración de SQL Server.
  2. Seleccione la instancia de SQL Server en SQL Server Services.
  3. Haga clic con el botón derecho en la instancia y, luego, seleccione Propiedades.
  4. Seleccione la pestaña Parámetros de inicio.
  5. Use el campo Specify a startup parameter (Especificar un parámetro de inicio) para agregar la marca de seguimiento. Escriba "-T902" (sin comillas) y haga clic en Agregar.
  6. Seleccione Aceptar y cierre las propiedades de la instancia.
  7. Inicie el servicio SQL Server.

Para más información sobre cómo configurar las opciones de inicio, consulte Servicios SCM - Configurar opciones de inicio del servidor.

Nota:

Asegúrese de quitar -T902 de la configuración una vez que haya resuelto el problema.

Símbolo del sistema con sqlservr.exe

  1. Abra un símbolo del sistema con privilegios administrativos y cambie el directorio al directorio SQL Server Binn, por ejemplo, C:\Archivos de programa\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Binn.

  2. Ejecute sqlservr.exe -s <instance> -T902.

    Instancia predeterminada:

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

    Instancia con nombre, donde "sql2016" es un ejemplo de un nombre de instancia:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Para detener la instancia cuando haya terminado, presione CTRL+C y, luego, Y.

Símbolo del sistema con net start

Instancia predeterminada:

NET START MSSQLSERVER /T902 

Instancia con nombre:

NET START MSSQL$INSTANCENAME  /T902