使用されているデータベースミラーリングプロトコルのTCPポート。1つのデフォルト、1つのダイナミック?


8

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;

2つのローカルTCPポートは、データベースミラーリングプロトコルに現れ、502263420

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

5022これはミラーリングエンドポイントとして構成された一つであるとポートが、期待されています。

もう1つは動的ポートのようですが、なぜこのポートを使用するのですか。

1つは多数の読み取り(5022)を示し、もう1つは多数の書き込み(63420)を示しているという事実と関係があるのでしょうか。

ビルドバージョン:13.0.5264.1

回答:


7

アプリケーションはTCP接続を確立するときに、インバウンド(受信)ポートのポートを指定し、アウトバウンド(ソースまたは送信)に(やや)ランダムに選択されたポートを使用します。AGレプリケーションのインバウンドポートはデフォルトで5022であるため、すべてのレプリケーショントラフィックはポート5022に送信されます。したがって、SQL Serverがポート5022をリッスンし、そのポートに送信されるパケットを読み取っているときに、ポート5022でネットワーク読み取りが行われていることがわかります。 。

ランダムに(多かれ少なかれ)選択される送信ポートは、送信元のポートです。したがって、SQL Serverが接続に送信するためにこのポートにデータを書き込んでいるため、ランダムポート(例では63420)に関連付けられた書き込みが表示されます。

参照元ポートが決定されているどのように...多くのため

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.