Recientemente, trabajando con el gestor de base de datos de Microsoft SQL Server 2008 R2 Express, tuvimos problemas con el inicio de su servicio.
El servicio estaba establecido con arranque automático, sin embargo, al iniciar windows el servicio de SQL Server aparecía parado; y a pesar de arrancarlo manualmente, a los pocos segundos se volvía a detener.
La extrañeza llegó a nuestros corazones, ya que en ningún momento se había realizado ningún cambio en la base de datos, ni en el sistema, más allá de las típicas actualizaciones de Windows.
Tras probar en varias ocasiones el arranque manual del servicio (esperando quizás que el duendecillo de turno lo arreglara sin decir nada), finalmente buscamos errores que por suerte se registraron en el visor de sucesos de Windows.
El mensaje concreto que aparecía en el visor de eventos era:
No se pudo realizar la actualización de nivel de script para la base de datos ‘master’ porque el paso de actualización ‘sqlagent100_msdb_upgrade.sql’ detectó el error 574, estado 0, severidad 16. 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.
Tras un buen rato googleando, confirmamos que el problema se generó tras las actualizaciones de Windows, y encontramos la siguiente solución que exponemos a continuación:
1. Habilitamos el indicador de traza 902, para ello:
- Abrimos el Administrador de configuración de SQL Server (lo encontrarás bajo Herramientas de configuración)
- En Servicios de SQL Server, abrimos el diálogo de propiedades del servicio SQL Server (SQLEXPRESS)
- Accedemos a la ficha de Opciones Avanzadas
- Buscamos la variable «Parámetros de inicio» e incluimos «;-T902» al final del valor.
2. Iniciamos el servicio de SQL Server (en este punto el servicio ya no se detiene)
3. Nos conectamos a través de Microsoft SQL Server Management Studio al servidor
4. En propiedades del servidor, desmarcamos la opción «Implicit transactions»
5. Volvemos a detener el servicio, y eliminar el indicador de traza 902 habilitado en el punto 1.
6. Volvemos a iniciar tanto el servicio de SQL Server como del Agente SQL Server
7. Volvemos a conectarnos a través de Microsoft SQL Server Management Studio y bajo la rama Administración del explorador de objetos, botón derecho del ratón en Recopilación de datos, y habilitamos la recopilación de datos si existiera la opción.
¡Te lo agradecemos!