web-dev-qa-db-ja.com

SQL Serverは、複数のセカンダリノードを持つAGの場合、同期としてコミットモードを持つセカンダリレプリカに接続をルーティングしますか?

以下のように4つの異なるノードを持つAGがある場合:

  1. プライマリノード
  2. セカンダリNode 1-非同期コミット-読み取り専用はい
  3. セカンダリNode 2-同期コミット-読み取り専用いいえ
  4. セカンダリNode 3-同期コミット-読み取り専用はい

この場合、アプリケーションからセカンダリノードへの接続が必要な場合、SQLServerはそれをNode 1またはNode 3?Node 2は、読み取り専用がNOに設定されているため、問題外ですよね?

理想的には、Node 3にルーティングする必要があります。これは、同期コミットがあり、データがプライマリとより一貫しているためです。これがここで発生しますか?

3
karun_r

ルーティングリストによって異なります。

SQL Server2104およびSQL2012の読み取り専用ルーティングは、アクセスできない場合を除き、ルーティングリスト内の最初に使用可能なレプリカにトラフィックを転送し、その後、ルーティングリスト内の次のレプリカに接続を転送します。読み取りに使用できるセカンダリレプリカが複数ある場合、それらのレプリカ間で読み取り負荷を分散することはできません。

SQL Server 2016では、読み取り専用レプリカのセット全体で負荷分散を構成できます。

詳細はこちら: https://blogs.msdn.Microsoft.com/alwaysonpro/2016/05/02/sql-server-2016-alwayson-availability-group-enhancements-load-balance-read-only-routing /

3
SqlWorldWide