Solucionar problemas de tiempo de espera expirado

El error de tiempo de espera agotado es un error común que se produce cuando no se está ejecutando una instancia de SQL Server Database Engine (Motor de base de datos de SQL Server), cuando el nombre del servidor no se ha escrito correctamente o cuando hay problemas de red y firewalls.

Texto del error

En SQL Server Management Studio, este error aparece como:

"No se puede conectar a <nombreDeServidor>."

"Valor de tiempo de espera caducado. El período de tiempo de espera caducó antes de completar la operación o el servidor no responde. (Microsoft SQL Server, Error: -2)"

En sqlcmd, pueden aparecer errores de tiempo de espera similares a:

Interfaces de red de SQL: Error al buscar el servidor/instancia especificado.

Sqlcmd: Error: Microsoft SQL Server Native Client: El cliente no ha podido establecer una conexión.

Sqlcmd: Error: Microsoft SQL Server Native Client: Valor de tiempo de espera expirado.

"No se ha podido abrir una conexión con SQL Server"

"Se ha producido un error al establecer una conexión al servidor. Al conectarse a SQL Server, este error puede ser debido al hecho de que con la configuración predeterminada, SQL Server no permite conexiones remotas."

Causas típicas de este error

Causa

Solución

El nombre del servidor no se ha escrito correctamente.

Inténtelo de nuevo con el nombre de servidor correcto.

El servicio SQL Server no está en ejecución en el servidor.

Inicie la instancia del SQL Server Database Engine (Motor de base de datos de SQL Server).

El puerto TCP/IP de la instancia del Motor de base de datos está bloqueado por un firewall.

Configure el firewall para permitir el acceso al Motor de base de datos.

El Motor de base de datos no está escuchando en el puerto 1433 porque se ha cambiado o porque no es la instancia predeterminada, y el servicio Explorador de SQL Server no está en ejecución.

Inicie el servicio Explorador de SQL Server o conéctese especificando el número del puerto TCP/IP.

El servicio Explorador SQL Server está en ejecución, pero el puerto UDP 1434 está bloqueado por un firewall.

Configure el firewall para permitir el acceso al puerto UDP 1434 en el servidor o conéctese especificando el número de puerto TCP/IP.

El cliente y el servidor no están configurados para utilizar el mismo protocolo de red.

Mediante el Administrador de configuración de SQL Server, confirme que los equipos servidor y cliente tienen al menos un protocolo común habilitado.

La red no puede resolver el nombre del servidor en una dirección IP. Esto se puede comprobar con el programa PING.

Solucione el problema de resolución del nombre de equipo en la red o conéctese utilizando la dirección IP del servidor. Éste no es un problema de SQL Server. Para obtener ayuda, vea la documentación de Windows o consulte al administrador de la red.

La red no puede conectarse con la dirección IP. Esto se puede comprobar con el programa PING.

Solucione el problema de TCP/IP en la red. Éste no es un problema de SQL Server. Para obtener ayuda, vea la documentación de Windows o consulte al administrador de la red.

Errores poco habituales

Varias direcciones IP de servidor

Los clientes de Windows Vista o Windows Server 2008 pueden recibir este error al conectarse a una instancia con nombre de SQL Server que esté instalada en un equipo clúster o no clúster con varias direcciones IP. Este problema se puede producir en todas las versiones de SQL Server.

Causa

Al conectarse a una instancia con nombre en un equipo remoto, el cliente utiliza el Protocolo de datagramas de usuario (UDP) para conectarse al servicio SQL Server Browser en el clúster o equipo SQL Server con el fin de obtener el extremo de la conexión (el número de puerto TCP o la canalización con nombre).

Los firewalls en el cliente de Windows Vista o Windows Server 2008 no permiten la asignación de origen no estricta para UDP. Es decir, la respuesta debe proceder de la misma dirección IP que se consultó. Si la respuesta no procede de la dirección IP a la que estaba destinaba originalmente, el firewall del cliente quitará el paquete. Este problema se puede producir al intentar conectarse a un equipo servidor clúster o no clúster que tenga varias direcciones IP.

En la tabla siguiente se describen las combinaciones de sistemas operativos que pueden ocasionar que se quiten paquetes UDP. Esto se evita conectándose a una instancia con nombre de SQL Server o a una instancia predeterminada de SQL Server que no esté escuchando en el puerto TCP 1433.

Sistema operativo cliente

Sistema operativo que está ejecutando SQL Server

Resultado de

SQL Server 2008

Resultado de

SQL Server 2005

Windows XP o Windows Server 2003

Windows XP o Windows Server 2003

No se quitan los paquetes UDP.

No se quitan los paquetes UDP.

Windows XP o Windows Server 2003

Windows Vista o Windows Server 2003

No se quitan los paquetes UDP.

No se quitan los paquetes UDP.

Windows Vista o Windows Server 2008

Windows XP o Windows Server 2003

Se quitan los paquetes UDP. No se puede conectar.

Se quitan los paquetes UDP. No se puede conectar.

Windows Vista o Windows Server 2008

Windows Vista o Windows Server 2008 (x86, IA64)

No se quitan los paquetes UDP.

Se quitan los paquetes UDP. No se puede conectar.

Windows Vista o Windows Server 2008

Windows Vista o Windows Server 2008 (x64)

Se quitan los paquetes UDP. No se puede conectar.

Se quitan los paquetes UDP. No se puede conectar.

Solución

Para evitar este problema, realice una de las acciones siguientes:

  • Especifique el número de puerto TCP o el nombre de la canalización con nombre como parte del nombre del servidor en la cadena de conexión.

  • Cree una excepción en el firewall de Windows con seguridad avanzada en el equipo cliente.

    Nota de advertenciaAdvertencia

    Las excepciones en el firewall pueden hacer que un equipo o una red sean más vulnerables a los ataques de usuarios malintencionados o de software malintencionado como los virus. No se recomienda esta solución pero se proporciona esta información para poder implementarla si lo desea en los casos en los que la alternativa sea impracticable.

    La excepción puede ser cualquiera de las siguientes:

    • Agregar una regla de excepción para la aplicación que se conecta a SQL Server.

    • Agregar una regla de entrada que permita el tráfico de todas las direcciones IP posibles del clúster o equipo SQL Server.

Turco o azerí

Los intentos de conexión pueden fallar si el idioma actual es turco o azerí y el nombre del servidor contiene "I". Para evitar este problema, conéctese al servidor utilizando la dirección IP. Si el nombre de la instancia contiene la "I", especifique el número de puerto TCP/IP al conectar. Para conectarse a un puerto específico, utilice un alias.

Nota

Para ayudar a solucionar los problemas de conexión, siga el tutorial Tutorial: Introducción al motor de base de datos.