Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo configurar SQL Server para que escuche en un puerto específico

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 823938
Resumen
Este artículo describe la asignación de puertos estáticos y dinámicos en Microsoft SQL Server 2008, SQL Server 2005 o SQL Server 2000. También se explica cómo configurar una instancia de SQL Server para utilizar un puerto estático o un puerto dinámico.
Más información
Asignación de puerto estático
Si se configura una instancia de SQL Server para utilizar un puerto estático, y reiniciar la instancia de SQL Server, la instancia de SQL Server sólo escucha en el puerto estático especificado. Los clientes de SQL Server deben enviar todas las solicitudes sólo al puerto estático en el que escucha la instancia de SQL Server.

Sin embargo, si una instancia de SQL Server es ha configurado para escuchar en un puerto estático y otro programa que se está ejecutando en el equipo ya está utilizando el puerto estático especificado una vez de SQL Server inicia, SQL Server no escucha en el puerto estático especificado.

De forma predeterminada, la instancia predeterminada de SQL Server está atenta a las solicitudes de clientes de SQL Server en el puerto 1433 estático. Por lo tanto, las bibliotecas de red de cliente suponen que el puerto 1433 o el puerto predeterminado global que está definido para ese equipo cliente se utiliza para conectarse a la instancia predeterminada de SQL Server.

Si es una instancia predeterminada de SQL Server a la escucha en un puerto distinto del puerto 1433, deberá definir un nombre de alias de servidor o cambiar el puerto predeterminado global mediante el uso de la herramienta de red de cliente. Sin embargo, también puede hacer en la instancia predeterminada de escucha de SQL Server en varios puertos estáticos.

Para obtener más información acerca de cómo configurar SQL Server para escuchar en varios puertos TCP estáticos, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
294453La configuración de SQL Server para escuchar en varios puertos TCP estáticos
La instancia predeterminada de SQL Server no es compatible con la asignación dinámica de puertos. Sin embargo, las instancias con nombre de SQL Server admiten la asignación de puertos dinámicos y estáticos. De forma predeterminada, una instancia con nombre de SQL Server escucha en un puerto dinámico. Para obtener una instancia con nombre de SQL Server, el servicio de explorador de SQL Server para SQL Server 2008, SQL Server 2005 o el protocolo de resolución de (SSRP) de SQL Server para SQL Server 2000 siempre se utiliza para traducir el nombre de instancia a un puerto, sin tener en cuenta si el puerto es estático o dinámico. El servicio Examinador o SSRP nunca se utiliza para una instancia predeterminada de SQL Server.

Asignación dinámica de puertos
Sólo las instancias con nombre de SQL Server pueden utilizar el proceso de asignación de puertos dinámicos. En el proceso de asignación de puertos dinámicos, cuando se inicia la instancia de SQL Server por primera vez, el puerto se establece en cero (0). Por lo tanto, SQL Server solicita un puerto libre cifra por el sistema operativo. Tan pronto como un número de puerto se asigna a SQL Servidor, SQL Server empieza a escuchar en el puerto asignado.

El número de puerto asignado se escribe en el registro de Windows. Cada vez que inicies esa instancia de SQL Server, con nombre utiliza ese número de puerto asignado. No obstante, en el caso poco probable que otro programa que ya se está ejecutando en el equipo está utilizando ese número de puerto previamente asignado (pero no static) cuando se inicia SQL Server, SQL Server selecciona otro puerto.

Al iniciar las instancias con nombre de SQL Server la segunda vez, SQL Server se abre el número de puerto de escucha que se inició la primera vez, como se indica a continuación:
  • Si el puerto se abre sin errores, SQL Server escucha en el puerto.
  • Si no se abre el puerto que se produzcan errores, SQL Server se comporta como sigue:
    • Recibe el mensaje de error siguiente:
      ID. de error 10048 (WSAEADDRINUSE)
      Cuando recibe este mensaje de error, SQL Server determina que se está utilizando el puerto. A continuación, el número de puerto se establece en cero (0) de nuevo. Por lo tanto, se asigna un puerto disponible. Y SQL Server espera a que la solicitud de conexión de cliente en el puerto.
    • Si recibe un mensaje de error que menciona error 10048, SQL Server 2000 determina que es imposible espere a que la solicitud de conexión en el puerto. Por lo tanto, el puerto no esté abierto.
Notas
  • En SQL Server 2005, cuando reciba el siguiente mensaje de error, el número de puerto se establece en cero (0) y se abre.
    ID. de error 10013 (WSAEACCES)
  • En Windows Server 2003 o en Windows XP, puede recibir el mensaje de 10013 error en lugar del mensaje de 10048 error cuando se utiliza el puerto al que está intentando abrir exclusivamente.
Cuando una instancia de SQL Server utiliza asignación dinámica de puertos, la conexión cadena que se construye en el cliente de SQL Server no especifica el destino de TCP/IP el puerto a menos que el usuario o el programador especifica explícitamente el puerto. Por lo tanto, la biblioteca de cliente de SQL Server consulta el servidor en el puerto UDP 1434 para recopilar la información acerca de la instancia de destino de SQL Server. Cuando SQL Server devuelve la información, la biblioteca de cliente de SQL Server envía los datos a la instancia adecuada de SQL Server.

Si se deshabilita el puerto UDP 1434, el cliente de SQL Server no puede determinar dinámicamente el puerto de la instancia mencionada de SQL Server. Por lo tanto, el cliente de SQL Server puede que no puedo conectarse a la instancia con nombre de SQL Server. En esta situación, el cliente de SQL Server debe especificar el puerto asignado dinámicamente donde está escuchando la instancia con nombre de SQL Server 2008, SQL Server 2005 o SQL Server 2000.

Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
265808Cómo conectarse a SQL Server mediante el uso de una versión anterior de SQL Server


Comprobar la configuración del puerto de una instancia de SQL Server
NotaLas instancias predeterminadas de SQL Server utilizan siempre una variable static puerto.

En primer lugar compruebe que la instancia de SQL Server tiene habilitado el protocolo TCP/IP. A continuación, examine el registro de errores de SQL Server para buscar qué puerto TCP/IP una instancia de SQL Server es "escucha en". Además, en SQL Server 2005 y versiones posteriores, permite comprobar la configuración en el Administrador de configuración de SQL Server. Si desea ver el registro de errores SQL desde dentro de un programa, siga estos pasos.

Nota Para SQL Server 2000, utilice el analizador de consultas para ejecutar las consultas siguientes.
  1. Inicie SQL Server Management Studio y, a continuación, conéctese a la instancia de SQL Server.
  2. Ejecutar la consulta siguiente:
    Use master Go Xp_readerrorlog
  3. En el Resultados panel, busque el texto siguiente (donde X.X.X.Xes la dirección IP de la instancia de SQL Server yY es el puerto TCP/IP donde está escuchando SQL Server):
    Servidor SQL a la escucha en X.X.X.X: Y
    Nota: Por ejemplo, si encuentra el "servidor SQL a la escucha en 10.150.158.246: 1433" texto en el Resultados panel, 10.150.158.246 es que la dirección IP de SQL Server y 1433 es el puerto TCP/IP donde está escuchando la instancia de SQL Server.
Para comprobar la configuración del puerto de un instancia de SQL Server, siga estos pasos:
  1. Inicie el Editor del registro.
  2. En el Editor del registro, busque la siguiente clave del registro:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\MSSQLServer\SuperSocketNetLib\Tcp</InstanceName>
    Nota Si utiliza SQL Server 2005, busque la siguiente subclave del registro:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<MSSQL.x>\MSSQLServer\SuperSocketNetLib\Tcp\IPAll</MSSQL.x>
    Tenga en cuenta el valor de TCPDynamicPorts y el valor TCPPort. Estos valores aparecen como se indica a continuación, dependiendo del método de asignación de puerto:
    • Asignación de puertos estáticos
      Si configura una instancia de SQL Server para utilizar un puerto estático pero no ha reiniciado la instancia de SQL Server, el los valores del registro se establecen como sigue:
      TCPDynamicPorts = Último puerto que se utiliza
      TCPPort = Nuevo puerto estático que se utilizará el siguiente reinicio; nuevo puerto estático establecer mediante el uso de la herramienta de red de servidor
      Sin embargo, si configura una instancia de SQL Server para utilizar un puerto estático y reiniciar la instancia de SQL Server, se establecen los valores del registro como elemento de acción:
      TCPDynamicPorts = En blanco
      TCPPort = Nuevo puerto estático establecer mediante el uso de la herramienta de red de servidor
    • Asignación de puertos dinámicos
      Si configura una instancia de SQL Server para utilizar asignación dinámica de puertos pero no ha reiniciado la instancia de SQL Server, los valores del registro se establecen como sigue:
      TCPDynamicPorts = En blanco
      TCPPort = 0
      Sin embargo, si configura una instancia de SQL Server para utilizar asignación dinámica de puertos y reiniciar la instancia de Los valores del registro de SQL Server, se establecen como sigue:
      TCPDynamicPorts = Puerto actual que se utiliza
      TCPPort = Puerto actual que se utiliza


Configuración de una instancia de SQL Server para utilizar un puerto estático

SQL Server 2008 y SQL Server 2005

Para configurar una instancia de SQL Server 2008 o SQL Server 2005 utiliza un puerto estático, siga los pasos que se describen en la Cómo: configurar un servidor para que escuche en un puerto de TCP específico (Administrador de configuración de SQL Server) tema en los libros en pantalla de SQL Server 2005 o en los libros en pantalla de SQL Server 2008.

Para configurar un puerto estático para la conexión de administrador dedicada (DAC) especializado, debe actualizar la clave del registro que corresponde a la instancia. Por ejemplo, la clave del registro puede ser la siguiente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\MSSQLServer\SuperSocketNetLib\AdminConnection\Tcp
Nota "La"X"en"MSSQL.X"es un número que indica el directorio donde está instalada la instancia de SQL Server 2005 o el nombre de instancia de SQL Server 2008.

SQL Server 2000

Para configurar una instancia de SQL Server para utilizar un puerto estático, siga estos pasos:
  1. Inicie la utilidad de red de servidor. Para ello, siga uno de estos procedimientos:
    • Haga clic en Inicio, seleccioneProgramas, seleccione Microsoft SQL Server, y a continuación, haga clic en Utilidad de red de servidor.
    • Haga clic en Inicioy, a continuación, haga clic en Ejecutar. En el Abrir cuadro, escriba SVRNETCN.exey, a continuación, Haga clic en ACEPTAR.
    El Servidor Herramienta de red Aparecerá el cuadro de diálogo.
  2. En el Servidor Herramienta de red cuadro de diálogo, haga clic en el General ficha.
  3. En elTodas las instancias en este servidor Seleccione la instancia de SQL Server.

    Nota Si se desactiva el protocolo TCP/IP permiten ahora. Para ello, haga clic en TCP/IP en el Deshabilitado Protocolos lista y, a continuación, haga clic en Habilitar.
  4. En el Habilitado Protocolos Haga clic en TCP/IPy, a continuación, haga clic enPropiedades.
  5. En el Puerto predeterminado Escriba un número de puerto estático y, a continuación, haga clic en ACEPTAR.

    Nota El puerto estático que especifique debe ser diferente de la puertos dinámicos que actualmente está escuchando la instancia de SQL Server. Para ejemplo, si una instancia de SQL Server actualmente está escuchando en TCP/IP dinámico puerto 1400, tipo 1500 para el nuevo puerto estático.
  6. Haga clic en ACEPTAR dos veces.
  7. Reiniciar la instancia de SQL Server.
  8. Permite ver los registros de errores de SQL Server para comprobar que la instancia de SQL Server se utiliza el puerto estático.

    Nota Si tiene una instancia agrupada de SQL Server y sigue los pasos especificados en un nodo del clúster, puede observar que los valores del registro de TCPDynamicPorts y los valores del registro de TCPPort en otros nodos del clúster todavía contienen los valores antiguos. Cuando Mueva el grupo de SQL Server para el nodo del clúster correspondiente y, luego, elevar SQL Server en línea en el nodo del clúster, los valores del registro en los nodos del clúster reflejan los valores correctos.
Puede desear establecer el puerto estático de una instancia de SQL Servidor para el mismo número de puerto que el puerto dinámico que utiliza versiones anteriores. Para ello, siga estos pasos:
  1. Permite ver el valor de registro TCPDynamicPorts y el valor de registro TCPPort para determinar el número de puertos dinámicos que utiliza la instancia anterior de SQL Server.
  2. En la herramienta de red, establezca el puerto estático en un número de puerto diferente que el valor del registro que anotó en el paso 1.
  3. Reiniciar la instancia de SQL Server.
  4. En la herramienta de red, establezca el puerto estático en el valor del registro que anotó en el paso 1.
  5. Reiniciar la instancia de SQL Server.


Configuración de una instancia de SQL Server para utilizar un puerto dinámico

SQL Server 2008 y SQL Server 2005

Para configurar una instancia de SQL Server 2008 o una instancia de SQL Server 2005 para utilizar un puerto dinámico, utilice el método similar se describe en el "Cómo: configurar un servidor para que escuche en un puerto de TCP específico (Administrador de configuración de SQL Server)" tema en los libros en pantalla de SQL Server 2008 o en los libros en pantalla de SQL Server 2005. Para obtener más información, vea el tema Configuración de red de servidor en los libros en pantalla de SQL Server 2008 o en los libros en pantalla de SQL Server 2005.

SQL Server 2000

Para configurar una instancia de SQL Server para utilizar un puerto dinámico, siga estos pasos:
  1. Inicie la utilidad de red de servidor. Para ello, siga uno de estos procedimientos:
    • Haga clic en Inicio, seleccioneProgramas, seleccione Microsoft SQL Server, y a continuación, haga clic en Utilidad de red de servidor.
    • Haga clic en Inicioy, a continuación, haga clic en Ejecutar. En el Abrir cuadro, escriba SVRNETCN.exey, a continuación, Haga clic en ACEPTAR.
    El Servidor Herramienta de red Aparecerá el cuadro de diálogo.
  2. En el Servidor Herramienta de red cuadro de diálogo, haga clic en el General ficha.
  3. En elTodas las instancias en este servidor Seleccione la instancia de SQL Server.

    Nota Si se desactiva el protocolo TCP/IP permiten ahora. Para ello, haga clic en TCP/IP en el Deshabilitado Protocolos lista y, a continuación, haga clic en Habilitar.
  4. En el Habilitado Protocolos Haga clic en TCP/IPy, a continuación, haga clic enPropiedades.
  5. En el Puerto predeterminado cuadro, escriba0y, a continuación, haga clic en ACEPTAR.
  6. Haga clic en ACEPTARy, a continuación, haga clic enACEPTAR volver a ejecutarlo.
  7. Reiniciar la instancia de SQL Server.
  8. Permite ver los registros de errores de SQL Server para comprobar que la instancia de SQL Server se utiliza el puerto dinámico.

    Nota Si tiene una instancia agrupada de SQL Server y sigue los pasos especificados en un nodo del clúster, puede observar que los valores del registro de TCPDynamicPorts y los valores del registro de TCPPort en otros nodos del clúster todavía contienen los valores antiguos. Cuando Mueva el grupo de SQL Server para el nodo del clúster correspondiente y, luego, elevar SQL Server en línea en el nodo del clúster, los valores del registro en los nodos del clúster reflejan los valores correctos.


Solución de problemas
Si los clientes de SQL Server no pueden tener acceso a una instancia de SQL Server una vez que lo configure para utilizar un puerto TCP/IP estático, pueden darse las siguientes causas:
  • A servidor de seguridad puede estar bloqueando el puerto TCP/IP especificado.
    Si el puerto que la instancia de SQL Server está escuchando actualmente está bloqueado por el servidor de seguridad, se producirá un error en las conexiones. Para obtener información acerca de cómo configurar el servidor de seguridad para que funcione con el de SQL Server, vea el tema configuración de Firewall de Windows para permitir el acceso de SQL Server en los libros en pantalla de SQL Server 2008. Aunque en este tema es específico de SQL Server 2008, la mayor parte de la información se aplica a SQL Server 2005 y SQL Server 2000.

    Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
    287932Números de puerto TCP/IP necesarios para comunicarse con SQL a través de un servidor de seguridad
    318432 Error: No se puede conectar a una instancia con nombre agrupada a través de un servidor de seguridad
    968872 Cómo abrir el puerto de servidor de seguridad para SQL Server en Windows Server 2008
  • Otro programa ya esté utilizando el puerto TCP/IP especificado.
    Si hay otra programa ya está utilizando el puerto TCP/IP especificado, el puerto no está disponible para la instancia de SQL Server y SQL Server los clientes pueden no se puede conectar a la instancia de SQL Server.

    Esto problema es específico de una instancia de SQL Server que está configurado para utilizar un puerto TCP/IP estático. Este problema no se produce de una instancia de SQL Server que está configurado para utilizar asignación dinámica de puertos. En la asignación de puertos dinámicos, si otro programa ya está utilizando el puerto TCP/IP especificado cuando se inicia la instancia de SQL Servidor, la instancia de SQL Servidor selecciona un nuevo puerto.

    Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    293107No se pueden comunicar los clientes de SQL Server a través del puerto 1433 o el puerto de SQL Server está escuchando en
  • Una instancia con nombre de SQL Server está escuchando en el puerto 1433.
    Si una instancia con nombre de SQL Server está escuchando en el puerto 1433, el proveedor Microsoft OLE DB para SQL Server (proveedor = SQLOLEDB) y el controlador de ODBC de SQL Server (Driver = {SQL Server}) puede que no pueda conectarse al servidor. Este error de conexión se produce cuando se omiten el nombre de instancia y el número de puerto de la cadena de conexión. Si no se especifica ningún número de puerto, los controladores de validación el nombre de instancia de servidor. Si el nombre de instancia de servidor no es la instancia predeterminada, MSSQLSERVER, la conexión es correcta. Para habilitar una conexión correcta, debe especificar el nombre de instancia o el número de puerto en la cadena de conexión o en un Alias de SQL.

    Notas
    • Recomendamos que tiene una instancia con nombre escuchan en el puerto 1433.
    • Otros proveedores, como System.Data.SqlClient y SQL Native Client (proveedor = SQLNCLI), no realizar la comprobación de nombre de instancia y conecte sin problemas.
Referencias
Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
286303Comportamiento de la biblioteca de red de SQL Server 2000 durante la detección de puertos dinámicos
273673 Descripción de las conexiones de cliente de servidor Virtual de SQL
328383 Los clientes de SQL Server pueden cambiar protocolos cuando los equipos cliente intentan conectarse a una instancia de SQL Server
Para obtener más información acerca de cómo configurar SQL Server para escuchar en puertos diferentes en distintas direcciones IP, consulte el tema Cómo configurar SQL server para escuchar en puertos diferentes en distintas direcciones IP? en el siguiente sitio Web de Blog de soporte técnico de Microsoft SQL Server:

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 823938 - Última revisión: 07/12/2013 09:09:00 - Revisión: 10.1

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup

  • kbsqlsetup kbsql2005cluster kbconnectivity kbupdate kbsqlclient kbnetwork kbfirewall kbconfig kbregistry kbhowtomaster kbmt KB823938 KbMtes
Comentarios