1

問題なく AlwaysOn 可用性グループを構成しました。

データベースは同期的にミラーリングされ、両方の SQL Server が正常に動作します。

アベイラビリティ グループ リスナーを作成し、プライマリ サーバーが ReadWrite 接続のみを受け入れるように構成し、セカンダリ サーバーが ReadOnly 接続のみを受け入れるように構成しました。

.NET Framework 4.5 では、SqlClient.SqlConnection を使用してリスナーに接続します。これは接続文字列です。

Server=tcp:SQLListen.domain-name.com, 1435;Database=TestData;User id=user;Password=password;MultiSubnetFailover=True;ApplicationIntent=ReadOnly

Microsoft のドキュメントによると、この ConnectionString を使用すると、ReadOnly を使用すると、セカンダリ サーバーに接続され、プライマリ サーバーに ReadWrite 接続が行われ、常にプライマリ サーバーに接続されるようになります。

ReadOnly を使用すると、プライマリ サーバーが ReadOnly 接続を受け入れないため、エラーが発生します。

また、ReadWrite に接続すると、必要に応じてプライマリ サーバーにも接続します。

ドメイン名への接続と、アベイラビリティ グループ リスナーの IP アドレスへの接続を試みました。

誰が私が間違っているのか教えてもらえますか?.

ありがとうございました。

4

1 に答える 1

2

私は解決策を見つけました。

私がやろうとしているのは、読み取り専用ルーティング リストと呼ばれるものです。

構成するには、次のコマンドを使用して、任意のサーバーに新しい URL を割り当てる必要があります。

ALTER AVAILABILITY GROUP [Availavility Group]
MODIFY REPLICA ON N'Replica Node' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'tcp://route:1433'))

次に、セカンダリへのルーティングのリストをプライマリ ノードに割り当てます。

ALTER AVAILABILITY GROUP [<your availabiliry group>]
MODIFY REPLICA ON N'<your availability group replica>' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'<first preference replica>', N'<second preference replica>')))

ここにあるすべての情報:

http://scottless.com/blog/archive/2012/01/25/sql-server-2012-configuring-alwayson-read-only-routing.aspx

于 2013-10-03T13:54:13.640 に答える