web-dev-qa-db-ja.com

AGがフェイルオーバーするとユーザー接続はどうなりますか?

これの言い方がよくわかりませんが、AGがフェールオーバーしたときのユーザーへの影響を減らすために、DBAができること(アプリケーションのコードを変更する以外のこと)を探しています。

リスナーと接続して、SQL 2016 SP2 CU10を同期コミットモードで実行する2ノードAGがあります。

新しいプライマリノードへの接続の切り替えを制御するものは何ですか。スイッチを加速する方法はありますか?接続文字列、AG設定、タイムアウトの変更など、ユーザーの切り替えを高速化するのに役立つものはありますか?

2
DBA Greg14

新しいプライマリノードへの接続の切り替えを制御するものは何ですか?

可用性グループ(AG)リスナーは、AGの構成方法(読み取り要求を許可するかどうかに応じて)に応じて、受信接続をプライマリレプリカまたは読み取りレプリカに送信します。

フェイルオーバーが発生すると、役割の反転が発生し、セカンダリレプリカがプライマリの役割に移行し、以前のプライマリがセカンダリの役割に移行します。

フェイルオーバー中、すべてのクライアント要求は終了します。これはアプリケーションのダウンタイムです。これで、フェイルオーバー後、クライアントがAGリスナーに再接続すると、リスナーは新しいプライマリに再接続します(読み取りインテント接続要求を除く)。

接続文字列、AG設定、タイムアウトの変更など、ユーザーの切り替えを高速化するのに役立つものはありますか?

参照:

2
Kin Shah

AGリスナーを指すときにクライアント接続の確立が遅くなることを意味し、それを避けたいですか?その場合、それは通常のことです 特に既知の問題 マルチサブネット環境で構成された可用性グループの場合、問題はTCP接続試行のデフォルトのタイムアウトが原因ですクライアントからDNSサーバーへ。

ただし、追加のパラメーター(MultiSubnetFailover=Yes)接続文字列内では、クライアント接続が通常よりも高速になる可能性があります。 詳細については..

0
Shekar Kola