Lors de l'exécution de la requête ci-dessous sur la réplique principale/secondaire d'un groupe de disponibilité SQL Server Always On ™
SELECT DISTINCT local_tcp_port,protocol_type,num_reads,num_writes
FROM sys.dm_exec_connections
WHERE local_net_address is not null;
Deux ports TCP locaux s'affichent pour le protocole de mise en miroir de bases de données, 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
Le 5022
port est attendu, car il s'agit de celui configuré comme point de terminaison de mise en miroir.
L'autre semble être un port dynamique, pourquoi et à quoi sert-il?
Cela peut-il avoir à voir avec le fait que l'on affiche un nombre élevé de lectures (5022
) et l'autre affichant un nombre élevé d'écritures (63420
).
Version de construction: 13.0.5264.1
Lorsqu'une application établit une connexion TCP, elle spécifie un port pour le port entrant (réception) et utilise un port (quelque peu) choisi au hasard pour le trafic sortant (source ou envoi). Le port entrant pour la réplication AG est 5022 par défaut, donc tout le trafic de réplication est envoyé vers le port 5022. En conséquence, vous voyez les lectures réseau se produire sur le port 5022, car SQL Server écoute sur le port 5022 et lit les paquets qui sont envoyés sur ce port.
Le port sortant, qui est sélectionné au hasard (plus ou moins), est le port à partir duquel il est envoyé. En conséquence, vous voyez les écritures associées au port aléatoire (63420 dans votre exemple), car SQL Server écrit des données sur ce port pour être envoyées sur la connexion.
Voir Comment les ports source sont-ils déterminés ... pour plus