SQLShack (Español)

Este artículo es útil para un principiante en la administración de SQL Server y brinda información sobre los puertos de SQL Server, los métodos para identificar los puertos configurados actualmente.

Introducción

Podemos definir el puerto como un punto final de servicio con fines de comunicación. Puede vincularse a una aplicación o servicio en particular. Una vez que instalamos SQL Server, configura los puertos predeterminados para los servicios de SQL Server. Cada aplicación cliente utiliza la combinación de direcciones IP y número de puerto para conectarse a SQL Server.

Podemos tener dos tipos de puertos de SQL Server en SQL Server.

  1. Puerto estático : Un puerto estático siempre está vinculado a un servicio o aplicación. No cambia debido a un reinicio del servicio o del sistema. De forma predeterminada, SQL Server utiliza el número de puerto TCP estático 1433 para la instancia predeterminada MSSQLSERVER. Si configura SQL Server para usar un puerto estático que no sea el puerto predeterminado, debe comunicarlo a los clientes o propietarios de la aplicación para especificar en la cadena de conexión
  2. Puerto dinámico: puede configurar SQL Server para usar un puerto dinámico. Si utiliza la asignación dinámica de puertos, especifique el número de puerto cero en la configuración de red. Una vez que SQL Service se reinicia, solicita un número de puerto libre del sistema operativo y asigna ese puerto a SQL Server.

    Como sabe, la aplicación utiliza una combinación de la dirección IP y el número de puerto de SQL Server, podría pensar en una pregunta: ¿Cómo sabrá una aplicación el número de puerto para conectarse a SQL Server?

Una vez que el sistema operativo asigna un puerto SQL Server dinámico a SQL Server, escribe ese número de puerto en el registro de Windows. El servicio Explorador de SQL Server utiliza el puerto estático UDP 1434. Lee el registro del puerto TCP asignado. La biblioteca cliente de SQL Server se conecta y envía un mensaje UDP mediante el puerto 1434. El servicio de navegador de SQL Server devuelve el número de puerto de una instancia específica. Una aplicación puede conectarse a SQL Server utilizando ese puerto dinámico de SQL Server. La instancia predeterminada de SQL Server usa el puerto estático; por lo tanto, el navegador de SQL Server no devuelve el puerto para la instancia predeterminada.

En la mayoría de los casos, SQL Server también usa la misma dinámica que el puerto de SQL Server al reiniciar el servicio SQL. Suponga que detuvo los servicios SQL y el sistema operativo asignó el número de puerto dinámico (previamente asignado a SQL) a otro servicio, SQL Server obtiene otro puerto dinámico asignado.

El servicio de navegador SQL es esencial para las instancias nombradas con asignación dinámica de puertos . Debe estar en estado de ejecución para que la aplicación consulte y obtenga los detalles del puerto.

Verificar el número de puerto de SQL Server

En esta sección, verificaremos un método diferente para verificar el número de puerto de SQL Server.

Método 1: Administrador de configuración de SQL Server:

Es el método más común para encontrar el número de puerto de SQL Server.

  • Paso 1:

    Abra el Administrador de configuración de SQL Server desde el menú de inicio. En caso de que tenga varias versiones de SQL Server, es posible que reciba un mensaje de error al abrir el Administrador de configuración de SQL Server:

    No se puede conectar al proveedor de WMI. No tiene permiso o el servidor es inaccesible

    Para solucionarlo, abra el símbolo del sistema administrativo y ejecute el siguiente comando

    1

    > mofcomp «% archivos de programa (x86 )% \ Microsoft SQL Server \ 150 \ Shared \ sqlmgmproviderxpsp2up.mof «

    En este comando, cambie la versión de SQL Server

    • SQL 2008 – 100
    • SQL 2012 – 110
    • SQL 2014 – 120
    • SQL2016 – 130
    • SQL 2017 – 140
    • SQL 2019 – 150

  • Paso 2:

    Vaya a Configuración de red, haga clic en la instancia SQL para la que desea verificar el puerto SQL

  • Paso 3:

    Abre la lista de protocolos. Haga clic derecho en TCP / IP y propiedades

  • Paso 4: Haga clic en Direcciones IP y desplácese hacia abajo hasta IPAll grupo. Puede ver los puertos TCP dinámicos SQL y el puerto TCP en la siguiente captura de pantalla.

    El valor de puertos dinámicos TCP muestra que estamos usando la configuración de puertos dinámicos. El puerto SQL dinámico TCP asignado actualmente es 51688.

    Si queremos usar un puerto estático, elimine el valor del puerto dinámico y especifique un puerto estático en el puerto TCP. Este número de puerto debe ser único y no debe ser utilizado por otras aplicaciones. Necesita reiniciar SQL Services para que este cambio sea efectivo

    • Nota: Debe cambiar la configuración del puerto de SQL Server utilizando únicamente el Administrador de configuración de SQL Server.

Método 2: Registros de errores de SQL Server:

SQL Server registra una entrada en los registros de errores de SQL Server en cada reinicio de SQL Servicios. Podemos usar el procedimiento almacenado extendido xp_readerrorlog para filtrar el registro de errores usando una palabra clave en particular.

La siguiente consulta usa el procedimiento almacenado extendido xp_readerrorlog para verificar porque el servidor está escuchando una palabra clave.

1
2
3

EXEC xp_ReadErrorLog 0, 1, N «El servidor está escuchando», N «cualquiera», NULL, NULL, «DESC»
GO

Obtiene los detalles del puerto de SQL Server en el que está configurada la instancia de SQL Server actual.

  • Nota: Si recicla los registros de errores con regularidad, es posible que no pueda encontrar el puerto de SQL Server con este método.

Método 3: Obtener el puerto del servidor SQL desde el registro usando xp_instance_regread:

Podemos usar un procedimiento almacenado extendido para obtener el valor del puerto SQL. Ejecute el siguiente código en SSMS para obtener un puerto dinámico para la instancia de SQL actualmente conectada.

Podemos usar @ Value_name = TcpPort para obtener detalles sobre el puerto estático.

Método 4: Obtener el puerto de SQL Server usando sys.dm_exec_connections DMV:

Podemos usar sys.dm_exec_connections DMV para verificar el puerto TCP de la instancia de SQL Server conectada. Usamos la variable @@ SPID para devolver el ID de SP de la sesión actual.

1
2
3
4

SELECCIONE local_tcp_port
FROM sys. dm_exec_connections
DONDE session_id = @@ SPID;
GO

Método 5: Obtener el puerto de SQL Server usando el Visor de eventos de Windows:

También podemos usar el Visor de eventos de Windows para verificar el SQL Detalles del puerto del servidor. Una vez que reiniciamos SQL Services, Windows Event Viewer también obtiene una entrada para el puerto SQL. El Visor de eventos de Windows puede tener una gran cantidad de eventos. Es mejor filtrar los registros de eventos para el ID de evento 26022.

Vaya a Ejecutar y escriba eventvwr. Abre la consola del visor de eventos de Windows. Haga clic en – Filtrar registro actual.

Especifique el ID de evento 26022 y haga clic en Aceptar

El visor de eventos muestra eventos para todos los servidores SQL instalados en los servidores. Puede buscar una instancia específica y verificar el número de puerto.

También puede seleccionar una instancia SQL específica en la lista desplegable de Fuentes de eventos.

En la siguiente captura de pantalla, podemos ver una entrada del puerto de SQL Server en el visor de eventos de Windows.

Conclusión

En este artículo, exploramos e identificamos métodos para verificar los puertos de SQL Server y cambiar la configuración del puerto estático y dinámico. Si tiene comentarios o preguntas, no dude en dejarlos en los comentarios a continuación.

  • Autor
  • Publicaciones recientes
Como entrenador certificado por Microsoft y MCSA en Gurgaon, India, con 13 años de experiencia, Rajendra trabaja para una variedad de grandes empresas que se centran en la optimización del rendimiento, el monitoreo y la alta disponibilidad. y estrategias e implementación de recuperación ante desastres. Es autor de cientos de artículos autorizados sobre SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git y tecnologías relacionadas que han sido vistos por más de 10 millones de lectores hasta la fecha.
Es el creador de una de las mayores colecciones gratuitas de artículos en línea sobre un solo tema, con su serie de 50 partes sobre los grupos de disponibilidad AlwaysOn de SQL Server. Basado en su contribución a la comunidad de SQL Server, ha sido reconocido con varios premios, incluido el prestigioso «Mejor autor del año» de forma continua en 2020 y 2021 en SQLShack.
Raj siempre está interesado en nuevos desafíos, así que si necesita consultoría ayuda sobre cualquier tema cubierto en sus escritos, puede ser contactado en [email protected]
Ver todas las publicaciones de Rajendra Gupta

Últimas publicaciones de Rajendra Gupta (ver todas)
  • Tiempos de espera de sesión en los grupos de disponibilidad Always On de SQL Server: 8 de febrero de 2021
  • Realización de actualizaciones de versiones menores y mayores AWS RDS SQL Server: 29 de enero de 2021
  • Implementación de instancias de AWS RDS PostgreSQL: 27 de enero de 2021

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *