Portas TCP do protocolo de espelhamento de banco de dados usadas. Um padrão, um dinâmico?


8

Ao executar abaixo da consulta na réplica primária / secundária de um Grupo de Disponibilidade Always On do SQL Server

SELECT DISTINCT local_tcp_port,protocol_type,num_reads,num_writes
FROM sys.dm_exec_connections 
WHERE local_net_address is not null;

Duas portas tcp locais são exibidas para o protocolo de espelhamento de banco de dados, 5022&63420

Server Name local_tcp_port  protocol_type       num_reads   num_writes
ServerName  5022            Database Mirroring  102942598   5
ServerName  63420           Database Mirroring  5           89655349

A 5022porta é esperada, pois é essa configurada como o ponto final de espelhamento.

A outra parece ser uma porta dinâmica, por que e para que é usada?

Poderia ter a ver com o fato de um estar mostrando um número alto de leituras ( 5022) e o outro mostrando um número alto de gravações ( 63420).

Versão de compilação: 13.0.5264.1

Respostas:


7

Quando um aplicativo estabelece uma conexão TCP, especifica uma porta para a porta de entrada (recebimento) e usa uma porta (um pouco) selecionada aleatoriamente para saída (origem ou envio). A porta de entrada para replicação AG é 5022 por padrão, portanto, todo o tráfego de replicação é enviado para a porta 5022. Portanto, você vê as leituras de rede ocorrendo na porta 5022, pois o SQL Server está atendendo na porta 5022 e lendo os pacotes enviados para essa porta .

A porta de saída, selecionada aleatoriamente (mais ou menos), é a porta da qual é enviada. Assim, você vê as gravações associadas à porta aleatória (63420 no seu exemplo), pois o SQL Server está gravando dados nessa porta para serem enviados na conexão.

Consulte Como são determinadas as portas de origem ... para obter mais

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.