sql >> Base de Datos >  >> RDS >> Database

¿Usando instancias con nombre? ¡Prueba tu conexión DAC!

Jugando hoy, descubrí que no podía conectarme a mi instancia local con nombre usando la conexión de administrador dedicada (también conocida como DAC, pero no ese DAC):

No se puede conectar a ADMIN:PLASKETT\SQL2012.

Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y que SQL Server esté configurado para permitir conexiones remotas. (proveedor:interfaces de red SQL, error:43:se produjo un error al obtener el puerto de conexión de administrador dedicado (DAC). Asegúrese de que SQL Browser se esté ejecutando o consulte el registro de errores para el número de puerto) (Microsoft SQL Server, error:-1)

Esto es local, por lo que, por supuesto, la siguiente configuración a nivel de servidor para permitir conexiones de administración remota no tiene efecto en este escenario específico:

EXEC sp_configure 'remote admin connections', 1;
GO
RECONFIGURE;
GO

Descubrí que podía conectarme si habilité el indicador de seguimiento 7806, aunque ese indicador de seguimiento está destinado a SQL Server Express (como se documenta aquí). Pero sabía que el problema tenía que ser más profundo que esto:Microsoft no podría haber roto por completo esta función, ¿verdad?

Resulta que este síntoma solo afecta a las instancias *nombradas*. Estaba hablando de esto con Jonathan Kehayias, que tenía una instancia predeterminada y podía conectarse bien. Sin embargo, no podía conectarse si especificaba explícitamente el número de puerto, lo que lo llevó a descubrir que TCP/IP estaba deshabilitado.

Si bien esto afecta a las instancias con nombre de Developer Edition específicamente porque el protocolo TCP/IP está deshabilitado de forma predeterminada, existen otros escenarios en los que esto puede perjudicarlo si tiene instancias con nombre y...

  • ha implementado [accidentalmente] Developer Edition en producción (travieso, travieso);
  • ha deshabilitado TCP/IP en cualquier edición; o,
  • el servicio del explorador de SQL Server no se está ejecutando.

Para resolver esto, asegúrese de que TCP/IP esté habilitado a través del Administrador de configuración de SQL Server> Protocolos de red para y asegúrese de que el servicio de navegador de SQL Server se esté ejecutando. Deberá reiniciar SQL Server.

Ahora, cuando pueda conectarse a través del DAC, si intenta conectarse dentro de Management Studio, recibirá este mensaje de error:

Este mensaje de error es benigno (y creo que proviene de la conexión de fondo de IntelliSense). Puede ver en su barra de estado que está conectado y puede verificar que su conexión sea la conexión DAC descartando este mensaje de error y ejecutando una consulta.

En cualquier caso, confirmar que puede conectarse a través del DAC es un paso absolutamente esencial en su plan de recuperación ante desastres. Si no puede conectarse al DAC, debe planificar una o ambas de las siguientes acciones durante su próxima ventana de mantenimiento (o antes, si puede permitirse reiniciar el servicio):

  • habilitar TCP/IP
  • habilitar indicador de rastreo 7806

En cualquier caso, asegúrese de que SQL Server Browser Service se esté ejecutando. También asegúrese de que la configuración del servidor para habilitar las conexiones remotas esté habilitada, ya que nunca sabe dónde puede estar cuando necesita acceder a un servidor que no responde.

Kendra Little escribió una excelente publicación de blog sobre el DAC el año pasado. Es divertido explorar y ver lo que puede hacer con el DAC, y es muy bueno saber que está ahí, pero también es importante saber cómo es posible que no pueda ayudarlo en caso de dificultades reales con el servidor.