Levantar instancia SQL Server solo con los ficheros de master

GPS Open Source News

Hola a todos, hoy os vamos a explicar cómo se puede levantar una instancia SQL Server, si solamente tenemos correctamente configurada la BBDD master.

Es un caso que nos pasó en un cliente hace unas semanas, donde había una instancia SQL Server 2016 Single-Instance montada sobre unidades, y se quería montar sobre puntos de montaje para utilizar solamente una letra de unidad.

Pasos para levantar instancia SQL Server

Mover la BBDD master

El primer paso es mover la BBDD master. Puedes recordad cómo se hacía en una de nuestras entradas.

Parada de la instancia

El problema estaba, en que, cuando paramos la instancia para hacer el movimiento de la BBDD master, no se podía levantar la instancia porque en el intento se buscaban las rutas de los ficheros de las demás BBDD y no existían.

Encontramos en la documentación oficial de Microsoft, en las opciones de inicio, una opción para iniciar en modo Single-User y utilizando solamente la BBDD master. En la ventana de propiedades de la instancia configuramos los parámetros.

  • -f            –  Inicia la BBDD con configuración mínima
  • -T3608  –  Inicia la BBDD solo con la BBDD Master
levantar instancia sql server

Error al iniciar

Al volver a levantar la instancia, esta se vuelve a caer y nos encontramos con un error que no esperábamos, sobre la BBDD model.

Con este error, encontramos un parámetro que no está documentado por Microsoft, que es el Trace Flag T3609.

NOTA: Los Trace Flag no documentados no se deben utilizar a menos que esté el soporte de Microsoft detrás, o en entornos que no estén en Producción.

Levantar instancia SQL Server de nuevo

Una vez añadido el Trace Flag la instancia levanta correctamente, aunque en este punto se encuentra en Single-User y no se pueden conectar las aplicaciones.

Aún así, ya podíamos cambiar las rutas de los ficheros que faltaban para funcionar correctamente. Para ello nos conectamos desde línea de comandos a la instancia, mediante la utilidad sqlcmd.

Al conectarnos con la instancia funcionando, se pudieron cambiar las rutas de los ficheros sin ningún problema. Se muestran los cambios de la BBDD msdb, aunque se hizo igual para las demás BBDD de la instancia.

USE master
GO
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData , FILENAME = 'N:\OPT_datos\MSSQL13.xxxxxxxx\MSSQL\DATA\MSDBData.mdf'); 
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog , FILENAME = 'N:\OPT_log\MSSQL13.xxxxxxxx\MSSQL\Data\MSDBLog.ldf');
GO

NOTA: Para las BBDD que no son de sistema, no hace falta el reinicio. Sólo es necesario poner la BBDD Offline antes y volverla a poner Online después del cambio.

Cuando se finalizan las tareas, hay que volver a reiniciar la instancia para que todos los cambios surtan efecto. Para esto hubo que quitar todos los parámetros establecidos anteriormente.

Configuración del agente

Para finalizar, habría que activar y levantar de nuevo el agente. Después de todos estos pasos, la instancia se levantó y quedó estabilizada y funcionando correctamente.

Esperamos que os sea de utilidad.

Un saludo,

Equipo de Base de datos